10.1 数据库存储索引为什么不用二叉排序树,不用红黑树,而用 B+ 树?
判断索引好不好的三个原则:
1、能不能快速定位到元素所在位置
2、能不能较好的进行范围查询
3、树的高度是高还是低
为什么不用二叉排序树?
二叉排序树查找效率分析:
二叉排序树的的平均查找长度为$O(log_2n)$。
而二叉排序树最坏情况是只有一个左(右)孩子的单支树,其平均查找长度为 O(n)
树的高度太高。
为什么不用 B 树?
范围查找时还要向上层搜索,太慢。
为什么不用红黑树?
红黑树本质上也还是特殊的二叉排序树,查找效率也不高。
为什么用 B+ 树?
m 阶 B+ 树每个分支结点最多有 m 棵子树。