B-Tree/多路搜索树

2022-09-09  本文已影响0人  pubalabala

B-Tree/多路搜索树

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

特征

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

说明: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)。

上一篇下一篇

猜你喜欢

热点阅读