B-树

六眼飞鱼酱① 提交于 2020-03-02 11:29:21

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!