自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 深入理解JVM篇

默认堆中年轻代占1/3、老年代占2/3,年轻代中包含Eden区和Survivor区,Survivor区包含s0区和s1区,默认新生代中Eden区、From区、To区的比例为8:1:1,当Eden内存不足时会发生minor gc,没有被回收的对象进入Survivor区,同时分代年龄+1,当再次触发minor gc时,from中的对象会移动到to区,Minor gc会回收Eden区和From区中的垃圾对象,对象的分代年龄会一次次的增加,当分代年龄增加到15以后,对象会进入到老年代。此后经过分析指令,执行指令。

2023-07-08 17:11:44 160 1

原创 MySQL事务原理与优化最佳实践

我们的数据库一般都会并发执行多个事务,多个事务可能会并发的对相同的一批数据进行增删改查操作,可能就会导致我们说的脏写、脏读、不可重复读、幻读这些问题。这些问题的本质都是数据库的多事务并发问题,为了解决多事务并发问题,数据库设计了事务隔离机制、锁机制、MVCC多版本并发控制隔离机制,用一整套机制来解决多事务并发问题。

2023-07-06 15:57:07 237 1

原创 MySQL锁机制与优化实践以及MVCC底层原理剖析

对于键值在条件范围内但并不存在的记录,叫做“间隙(GAP)” ,InnoDB 也会对这个“间隙”加锁,这种锁机制就是所谓的间隙锁。InnoDB 使用间隙锁的目的,是为了防止幻读,以满足串行化隔离级别的要求 ,对于上面的例子,要是不使用间隙锁,如果其他事务插入了 userid 大于 100 的任何记录,那么本事务如果再次执行上述语句,就会发生幻读。a. 若 row 的 trx_id 在视图数组中,表示这个版本是由还没提交的事务生成的,不可见(若 row 的 trx_id 就是当前自己的事务是可见的);

2023-07-03 20:39:58 70 1

原创 深入理解MySQL索引底层数据结构与算法

通过辅助索引首先找到的是主键,再通过主键值找到数据行的数据页,再通过数据页中的page Directory找到数据行。相同的page存储的主键索引更多,所以在数据行数相同的情况下,使用整型数据作为主键索引B+Tree的高度更低,查询效率更高。基于二叉树的这种数据结构,当数据是有序插入的时候,二叉树将会退化成链表,所以不适合做索引的实现。聚簇索引是按照每张表的主键构造的一颗B+树,同时叶子节点存的是整张表的行记录数据(也称为数据页)二叉树是一种有序的数据结构,根节点大于左子节点的数据,小于右子节点的数据。

2023-07-03 20:29:43 119

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除