美文网首页
B-Tree/多路搜索树

B-Tree/多路搜索树

作者: pubalabala | 来源:发表于2022-09-09 00:56 被阅读0次

    B-Tree/多路搜索树

    B-Tree 又叫 B树/B-树,- 是连接符号,不是减号,不能读做 B减树,常用做文件系统索引。

    特征

    对于一颗 m 阶的 B-Tree 需满足以下特征:

    • 根结点至少有两个子节点。
    • 每个中间节点都包含 k-1 个元素和 k 个子节点,其中 m/2 <= k <= m。
    • 每一个叶子节点都包含 k-1 个元素,其中 m/2 <= k <= m。
    • 所有的叶子结点都位于同一层。
    • 每个节点中的元素从小到大排列,节点当中 k-1 个元素正好是 k 个子节点包含的元素的值域分划。

    说明:m 阶中的 m 指的是每个节点最多包含 m 个子节点;每个元素也被称为关键字或者键值,每个元素对应一条数据。

    示例图:

    B-Tree

    B-Tree 的每个节点对应一个磁盘块,检索数据时从根节点查找,当需要进一步查询子节点时,会从磁盘中读取子节点对应的磁盘块,直到查找到对应元素,因为磁盘块中包含了子节点的指针、键值以及键值对应的数据,因此查找到键值时也就查找到了数据。

    优点

    相较于二叉树,减少树的高度,从而减少磁盘 I/O,提升效率。

    扩展

    B+-Tree

    对于相同的磁盘块大小,B+-Tree 把 B-Tree 存放 data 的空间用于存放键值,data 都放在叶子节点,相对于相同高度的 B+Tree 可以提升树的阶,从而达到在不增加磁盘 I/O 的情况下提升可查找的数据范围。

    示例图:

    B+-Tree

    MongoDB 使用的是 B-Tree 还是 B+-Tree

    这个问题答案并不明确,只提供一些线索:

    最后提供一个帮助理解数据结构的工具网站 Data Structure Visualizations(无需 VPN)。

    相关文章

      网友评论

          本文标题:B-Tree/多路搜索树

          本文链接:https://www.haomeiwen.com/subject/izdanrtx.html