首页 > 代码库 > mysql数据库索引简单原理
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数据库索引简单原理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。