mysql数据库索引简单原理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql数据库索引简单原理相关的知识,希望对你有一定的参考价值。

今天主要介绍的mysql版本是5.6以后,官方已经默认innodb为默认的存储引擎,几乎99%的场景都可以用innodb引擎。

  innodb索引引擎实现的数据结构是B+树,B并不是代表二叉树,而是代表的平衡,注意:B+树索引能够找到的只是被查找数据行所在的页,然后数据库通过把页读入内存,再内存中进行查找然后查到数据。

B+树的新特性:

  所有的记录都是在叶子节点,并且顺序排放,一般来说B+树的插入必须是连续的排放,叶子节点是以页为单位,如果数据不是有顺序的,B+树为了维持索引的有序性,会进行大量的页分裂,造成大量的资源的浪费,所以,一般选择innodb的主键是整型且无关业务。

  B+树在数据库中有一个特性在于它的高扇出性,所以B+树的高度一般在2-3层,也就是寻找某一个键值,最多进行2-3的IO,一般时间只需要0.02秒

聚簇索引:

  聚簇索引是按照主键构造的一颗B+树,在叶子节点中包含所有的行数据,一般情况,查询优化器非常倾向于采用聚簇索引,因为聚簇索引能够直接在叶子节点找到数据,不需要回行查找,除了主键的其他索引,我们称之为辅助索引,页面级别并不包含全部的数据,全部的数据只在主键那里,叶子节点包含的是该键值和对应的主键,通过找到主键进行找到行数据,

以上是关于mysql数据库索引简单原理的主要内容,如果未能解决你的问题,请参考以下文章

[转载]MySQL索引原理与慢查询优化

MySQL - - 索引原理与慢查询优化

「Mysql索引原理(七)」覆盖索引

MySQL 索引原理以及查询优化

重新学习MySQL数据库4:Mysql索引实现原理

MySQL数据库索引原理 | 索引数据结构 | B+Tree