- 博客(45)
- 收藏
- 关注
原创 Redis-05 Redis开发规范与性能优化
user:{uid}:friends:messages:{mid} 简化为 u:{uid}:fr:m:{mid}比如:trade:order:1(业务名:表名:id)空格,换行,单双引号,其他转义字符等。2.选择合适的数据类型。3.key设置过期时间。1.避免bigkey。
2023-12-04 00:03:55 29
原创 Spring-07 Spring 事务
11.Spring事务的传播机制是基于数据库连接来做的,⼀个数据库连接⼀个事务,如果传播机制配置为需要新开⼀个事务,那么实际上就是先建⽴⼀个数据库连接,在此新数据库连接上执⾏sql。5.并且修改数据库连接的autocommit属性为false,禁⽌此连接的⾃动提交,这是实现Spring事务⾮。10.Spring事务的传播机制是Spring事务⾃⼰实现的,也是Spring事务中最复杂的。8.如果出现了异常,并且这个异常是需要回滚的就会回滚事务,否则仍然提交事务。6.然后执⾏当前⽅法,⽅法中会执⾏sql。
2023-11-19 23:35:06 24
原创 JVM-08 class常量池和运行时常量池
因为有"test"这个字面量,创建对象s的时候,JVM会先去常量池中通过 equals(key) 方法,判断是否有相同的对象,如果有,则直接返回该对象在常量池中的引用;,只有到运行时被加载到内存后,这些符号才有对应的内存地址信息,这些常量池一旦被装入内存就变成运行时常量池,对应的符号引用在程序加载或运行时会被转变为被加载到内存区域的代码的直接引用,也就是我们说的。字符串常量池底层是hotspot的C++实现的,底层类似一个 HashTable, 保存的本质上是字符串对象的引用。
2023-10-06 11:09:03 59 1
原创 JVM-02 jvm整体结构及内存模型
元空间触发Fullgc的初始阈值(元空间无固定初始大小), 以字节为单位,默认是21M左右,达到该值就会触发full gc进行类卸载, 同时收集器会对该值进行调整: 如果释放了大量的空间, 就适当降低该值;调整元空间的大小需要Full GC,如果应用在启动的时候发生大量Full GC,通常都是由于永久代或元空间发生了大小调整,基于这种情况,JVM参数中将MetaspaceSize和MaxMetaspaceSize设置成一样的值,并设置得比初始值大,对于8G物理内存的机器来说,设置为256M。
2023-09-23 22:38:24 39 1
原创 Mysql-10 InnoDB底层原理
update sql执行流程redo log 格式 写入磁盘机制big log 格式 写入磁盘机制undolog错误日志通用查询日志
2023-09-21 14:09:00 16
原创 Mysql-09 Mysql的内部组件结构
MySQL 拿到一个查询请求后,会先到查询缓存拿数据,之前执行过的语句及其结果以 key-value 对的形式缓存在内存中。缓存中存在直接返回给客户端。3、一个用户成功建立连接后,即使用管理员账号对这个用户的权限做了修改,也不会影响已经存在连接的权限。之后,这个连接里面的权限判断逻辑,都将依赖于此时读到的权限。只要有对一个表的更新,这个表上所有的查询缓存都会被清空,对于更新频繁的场景来说,查询缓存的命中率会非常低。客户端和连接器TCP 握手后,连接器就开始认证客户端的身份(用输入的用户名和密码)。
2023-09-18 23:14:56 22
原创 Mysql-07 事务原理
4.用Spring开发程序时,如果不设置隔离级别默认用Mysql设置的隔离级别,如果Spring设置了就用Spring设置的隔离级别。3.事务隔离机制、锁机制、MVCC多版本并发控制隔离机制、日志机制如何解决多个事务的并发维问题?2.多个事务对同一批数据增删改查,会导致脏写、脏读、不可重复读、幻读这些问题,如何解决?当多个事务修改同一行数据,有可能最后的更新覆盖了由其他事务所做的更新。2.事务中避免远程调用,远程调用要设置超时,防止事务等待时间太久。事务A读取到了事务B已经修改但未提交的数据。
2023-09-17 15:02:11 26 1
原创 Mysql-06 表关联查询原理
整个过程对t1和t2都做了一次全表扫描,扫描总行数t1+t2=100100,join_buffer里的数据是无序的,t1 中的每一行都要做 100 次判断,所以内存中的判断次数是 10000 * 100 = 100 万次,join_buffer 由参数 join_buffer_size 设定的,默认值是 256k。把驱动表的数据读入到 join_buffer 中,然后扫描被驱动表,把被驱动表每一行取出来跟 join_buffer 中的数据做对比。1.把 t2 的所有数据放入到 join_buffer 中。
2023-09-14 23:46:16 32
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人