什么是B+树
什么是B树
对比
索引为什么用B+树不使用B树
1.B+树非叶子节点不存储数据记录,可以存储更多的key,树的层级相对矮一些;B树非叶子节点存储数据记录数据,单个节点存储的key 相对较少,树的层级想多高一些。对于查询,B树消耗更多I/O资源
2.B+树叶子节点之间采用链表,可以更好的支持范围查询和排序。B树需要递归整棵树
B树与B+树比较
B+树层级更少,查找更快
B+树查询速度稳定:由于B+树所有数据都存储在叶子节点,所以查询任意数据的次数都是树的高度h
B+树有利于范围查找
B+树全节点遍历更快:所有叶子节点构成链表,全节点扫描,只需遍历这个链表即可
B树优点:如果在B树中查找的数据离根节点近,由于B树节点中保存有数据,那么这时查询速度比B+树快。
索引为什么不用红黑树
红黑树的层级更深,查询I/O更多
索引为什么不用哈希
哈希对于查询单个节点比较快,不适合范围查询和排序