美文网首页
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树, since 2022-06-12

    (2022.06.12 Sun)B-tree即B树,是多路搜索树的一种,常用于数据库的实现。 多路搜索树 Mult...

  • B-Tree/多路搜索树

    B-Tree/多路搜索树 B-Tree 又叫 B树/B-树,- 是连接符号,不是减号,不能读做 B减树,常用做文件...

  • B-tree/b+tree 原理以及聚簇索引和非聚簇索引

    B-Tree介绍(B树) B-Tree是一种多路搜索树(并不是二叉的):1.定义任意非叶子结点最多只有M个儿子;且...

  • 红黑树,B 树的性质

    红黑树 B-tree balanced tree B 树是一种平衡的多路搜索树,不是两个叉,多个叉,比如文件系统或...

  • B-tree

    B-tree(多路搜索树,并不是二叉的)是一种常见的数据结构。使用B-tree结构可以显著减少定位记录时所经历的中...

  • Golang-btree包的主要方法和总结

    B-tree(多路搜索树,并不是二叉的)是一种常见的数据结构。使用B-tree结构可以显著减少定位记录时所经历的中...

  • 【恋上数据结构与算法一】(十)B树

    B树(B-tree、B-树) ◼ B树是一种平衡的多路搜索树,多用于文件系统、数据库的实现 ◼ 仔细观察B树,有什...

  • 12-B树

    B树(B-tree,B-树) B树是一种平衡的多路搜索树,多用于文件系统,数据库的实现 仔细观察B树,有什么眼前一...

  • 平衡二叉查找树、B树、B+树

    B-Tree介绍(-为分隔符不是减的-) 多路平衡搜索树,一棵m叉的B树特性如下: 树中每个节点最多包含m个孩子除...

  • 《恋上数据结构与算法一》笔记(十)B树

    一 序言 B树是一种平衡的多路搜索树,多用于文件系统,数据库的实现。也称(B-tree或B-树) 二 B树的特点 ...

网友评论

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

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