MySQL的B-Tree索引

Posted Eleanor123

tags:

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

大多数mysql引擎都支持这种索引,但底层的存储引擎可能使用不同的存储结构,例如NDB使用T-Tree,而InnoDB使用B+ tree。

B-Tree说明所有的值都是按顺序存储的,并且每个叶子页到到根的距离相同。B-Tree索引能加快访问数据的速度。因为存储引擎不需要进行全盘扫描来获取数据,是从索引的根节点开始搜索。根节点的槽中存放了指向子节点的指针,存储引擎根据这些指针向下层查找。

通过比较节点页的值和要查找的值可以找到合适的指针进入下层子节点,这些指针实际上定义了子节点页中值的上限和下限。最终存储引擎要么找到对应的值,要么改记录不存在。

B-tree的限制:

  • 如果不是按照索引的最左列开始查找,无法使用索引。
  • 不能跳过索引中的列,例如索引为(id,那么,sex)不能只是使用id和sex二跳过name。
  • 如果查询中有某个列的范围查询,则其右边的所有列都无法使用索引。

以上是关于MySQL的B-Tree索引的主要内容,如果未能解决你的问题,请参考以下文章

MySQL Hash索引和B-Tree索引的区别

图解MySQL索引--B-Tree(B+Tree)

Mysql索引原理B-Tree, B+Tree

mysql 索引B-Tree类型对索引使用的生效和失效情况详解

Mysql Hash索引和B-Tree索引区别(Comparison of B-Tree and Hash Indexes)

MySQL的B-Tree索引