先大体看一遍此文章:https://zhuanlan.zhihu.com/p/54084335
B-树:不叫B减树,而是B树,其是一种多路平衡查找树,它的每个节点最多包含k个孩子,k被称为B树的阶
数据库索引为什么使用树存储结构
树的查询效率高,且可保持有序
为什么索引不使用二叉查找树来实现呢?
虽然从算法层面二叉查找树的查找速度和比较次数都是最小的,但其磁盘IO操作次数较多。
为什么磁盘IO操作次数多会导致查询速度慢呢?
当利用索引查询时,是不能将整个索引加载到内存的,只能是逐一加载,索引页对应索引树的节点
每个节点的大小取决于什么?
取决于磁盘页的大小
优势
- IO操作次数相较于二分查找树要高
- 插入和删除会自平衡
B-树的主要应用场景?
文件系统、部分数据库索引,比如:mongodb