Mysql索引数据结构
B Tree
为解决红黑树在大数据量的情况下,出现层级较深,检索速度较慢的问题,我们使用B树结构
B+Tree
B+树相对于B树他的所有节点都会出现在叶子节点;
并且所有叶子结点会形成一条单向链表
向b+树插入2345
可以看到,“中间数值”向上移动,但是仍然在叶子节点但中存在,
所以说,叶子节点包含所有元素,分叶子节点只起到索引的作用。
在mysql索引当中的B+树
在原有B+树上增加一个相邻叶子节点的链表指针,就形成了带有顺序指针的B+Tree,提高区间访问效率
与 B-Tree 的区别:
- 所有的数据都会出现在叶子节点
- 叶子节点形成一个单向链表
MySQL 索引数据结构对经典的 B+Tree 进行了优化。在原 B+Tree 的基础上,增加一个指向相邻叶子节点的链表指针,就形成了带有顺序指针的 B+Tree,提高区间访问的性能。