B树和B+树的区别,为什么Mysql使用B+树?
B树特点
- 一个节点可以存储多个元素,元素之间也进行了排序
- 节点之间进行了排序
B+树的特点
- 拥有B树的全部特点
- 叶子节点之间有存在指针,维护了一个链表的结构
- 非叶子节点只存放叶子节点的冗余索引,叶子节点存储了所有元素。
Mysql使用B+树
因为索引是用来加快查询的,而B+树通过对数据进行排序可以提高查询速度,B+tree通过一个节点可以存储跟多的元素,使得B+树更加矮胖,所需要的IO更少,并且一页只有16KB,一般情况下任务深度为3的B+tree可以存2000万行数据。
利用B+树中的叶子节点有序链表可以很好地支持范围查找和全表扫描。
如有错误欢迎指正