INNODB存储引擎:
(1): 根节点不动
B+Tree索引建立的具体流程如下:
当表刚建立时,表中没有一个数据,此时只有一个数据页(根数据页),该页中没有任何的记录项。当我们不停的插入数据直到根数据页满了。此时如果再想插入数据,MySQL会
新建两个数据页(A,B)。我们会将
根数据页中的记录项全部移动到新建的数据页A中,根数据页变为索引页。
要插入的数据 放入到新建的数据页 B 中
(2):索引页中记录索引的唯一性
当我们根据非主键字段建立索引时,难免不会出现某些索引值相等的情况,如下图
![](https://img-blog.csdnimg.cn/c8245c7daf0648e2a7f6745b4b24962b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5pyJ5rCU6LSo55qE54G16a2C,size_20,color_FFFFFF,t_70,g_se,x_16)
当我们在想插入一个索引值 = 1 的记录时,就不能计算出具体应该插入到哪个数据页。
所以采用如下方案解决:如果索引值相同的话,每条记录上就加上对应的主键值
![](https://img-blog.csdnimg.cn/a3b5bf7f50864315b966a4a9a829e2f0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5pyJ5rCU6LSo55qE54G16a2C,size_20,color_FFFFFF,t_70,g_se,x_16)
(3):Innodb存储引擎使用的是聚簇索引
innodb存储引擎在建立表时,