B-树(读作B树)
mysql数据库的索引基于Hash表或B+树
索引采用树结构存储,查询效率高,还可以操持有序。
数据库不使用二叉树的原因:
从算法逻辑上来讲,二叉树的查找速度和比较次数都是小的。但是,要考虑磁盘IO。
数据库的索引是存储在磁盘上的,当数据量比较大的时候,索引的大小可能有几个G甚至更多,当我们利用索引查的时候,不可能把整个索引全部加载到内存,只能逐一加载每一个磁盘页(磁盘页对应索引数的节点)
磁盘IO数是由数的高度确定的,磁盘IO数<=树的高度
为了减少磁盘IO,就要把树变得"矮胖",这就是B-树的特征之一
B树是一种多路平衡查找树,一个m阶B树有如下几个特征:
1.根结点至少有两个子女。
2.每个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= m
3.每一个叶子节点都包含k-1个元素,其中 m/2 <= k <= m
4.所有的叶子结点都位于同一层。
5.每个节点中的元素从小到大排列,节点当中k-1个元素正好是k个孩子包含的元素的值域分划。
应用:MongoDB
来源:CSDN
作者:蒟蒻级玩家
链接:https://blog.csdn.net/qq_44144735/article/details/104605384