这一篇笔记简述一下
-
MySQL的B+Tree索引到底是咋回事?
-
聚簇索引索引到底是如何长高的。
一点一点看,其实蛮好理解的。
MySQL进行CRUD是在内存中进行的,也就是在Buffer Pool中。然后你也知道了当内存中没有MySQL需要的数据时,MySQL会从Disk中通过IO操作将数据读入内存中。读取的单位呢就是:数据页
一般数据页长下面这样
数据页
没错,数据页中存储着真实的数据,而且数据页在内存中是以双向联表的方式组织起来的!如下图
页分裂之前
而在B+Tree的设定中,它要求主键索引时递增的,也就是说如果主键索引时递增的话,那么就要求右侧的数据页中的所有数据均比左侧数据页中的数据大。但是很明显上图并不符合,因此需要通过页分裂来调整成下面这样。
页分裂之后
好,现在你回想一下,之前你肯定有听说过:MySQL的B+