mysql索引及实现原理
什么是索引
段落引用索引(在MySQL中也叫做”键(key)“)是存储引擎用户快速找到记录的一种数据结构。这是索引的基本功能。索引优化应该是对查询性能优化的最有效手段了。索引能够轻易将查询性能提高几个数量级,”最优“的索引有时比一个”好的“索引性能要好两个数量级。创建一个真正”最优“的索引经常需要重写查询。
索引的类型
B-TREE索引
优点:
1、首先B+树的中间节点不存储卫星数据,所以同样大小的磁盘页可以容纳更多的节点元素,如此一来,相同数量的数据下,B+树就相对来说要更加矮胖些,磁盘IO的次数更少。
2、由于只有叶子节点才保存卫星数据,B+树每次查询都要到叶子节点;而B树每次查询则不一样,最好的情况是根节点,最坏的情况是叶子节点,没有B+树稳定。
3、所有叶子节点形成有序链表,便于范围查询。
哈希索引
优势:
1、等值查询比B+TREE索引更快
mysql的索引是怎么实现
存储引擎:InnoDB
使用B+TREE索引,主键是聚簇索引,辅助索引使用的是非聚簇索引
聚簇索引:
叶子节点保存的是data本身
非聚簇索引:
叶子节点保存的是主键数据的存放地址