当前位置: 移动技术网 > IT编程>开发语言>.net > MySQL聚簇索引概念总结

MySQL聚簇索引概念总结

2020年07月30日  | 移动技术网IT编程  | 我要评论

利用这篇文章对MySQL聚簇索引的一些概念做一些总结,有不对的地方还请各位看官帮忙指正。/手动抱拳

聚簇索引定义

聚簇索引就是每张表构建一个B+树,每一个节点都是一,叶子节点存放的是整张表的行记录,所以叶子节点也叫数据页。

MySQL中的页

页的概念

页可以理解为一个存储空间,MySQL中每一页大小为16kb(16384)。MySQL每次查询数据时都是以页为单位取数据到内存中,即每次查询至少取一页的数据到内存,也叫局部性原则

页的结构

引用一篇大佬的文章

https://blog.csdn.net/jh993627471/article/details/79239720

聚簇索引的构建

当一张表的数据页超过两页时(叶子节点数 >= 2),会将原先的数据页copy一份,与新页一起充当叶子节点,第一页作为根节点,修改根节点。根节点存储的是每个数据页的起始主键。由于每一页的page directory中也会存放对应的主键,所以聚簇索引中主键会有冗余。

非聚簇索引

非聚簇索引也是一棵B+树。我们通常所说的索引都是辅助索引,辅助索引其实就是非聚簇索引,因为其叶子节点并不存储行记录,而是存储主键值。当我们使用辅助索引查询时,其实是先通过非聚簇索引查询到主键值,然后根据主键值去聚簇索引中查询实际的行记录,这个根据主键值去聚簇索引中查询的过程就叫做回表
注意:我们这里所说的主键值并不一定是MySQL表中的主键,如果我们没有建立主键,那么MySQL会选择唯一索引建立B+树,如果没有唯一索引,那么MySQL会使用一个隐藏列,row_id去建立B+树。

本文地址:https://blog.csdn.net/weixin_44082396/article/details/107633664

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网