简简单单了解一下B+Tree和B-Tree

简介: 1)B+Tree是B-Tree的改进版本,同时也是数据库索引索引所采用的存储结构。

(1)B+Tree


是B-Tree的改进版本,同时也是数据库索引索引所采用的存储结构。数据都在叶子节点上,并且增加了顺序访问指针,每个叶子节点都指向相邻的叶子节点的地址。相比B-Tree来说,进行范围查找时只需要查找两个节点,进行遍历即可。而B-Tree需要获取所有节点,相比之下B+Tree效率更高。

网络异常,图片无法展示
|


(2)B-Tree


B-Tree是为磁盘等外存储设备设计的一种平衡查找树。

B-Tree结构的数据可以让系统高效的找到数据所在的磁盘块。

B-Tree中的每个节点根据实际情况可以包含大量的关键字信息和分支。

缺点:B-Tree每个节点都保存数据,导致非叶子节点中能保存数据的指针变少(称为扇出),指针少又要保存大量数据则只能增加树的高度,IO操作变多,查询性能降低。

网络异常,图片无法展示
|


B+Tree相对于B-Tree区别:



  1. 非叶子节点只存储键值信息。
  2. 所有叶子节点之间都有一个链指针。
  3. 数据记录都存放在叶子节点中。
目录
相关文章
|
2月前
|
前端开发 UED
Tree shaking 技术的原理
【10月更文挑战第14天】tree shaking 技术基于模块系统和静态分析,通过准确识别和移除未使用的代码,实现代码的优化和精简。它是现代前端开发中不可或缺的一部分,有助于提高应用的性能和用户体验。
|
7月前
|
存储 算法 编译器
|
8月前
|
定位技术 索引
R-tree 总结
R-tree 总结
99 0
|
8月前
|
存储 算法 Python
赢者树(Losers Tree)
赢者树(Losers Tree)是一种经典的数据结构,常用于外部排序(External Sorting)算法中,将多个有序的子序列合并成一个有序的序列。赢者树本质上是一棵完全二叉树,每个节点存储着一个子序列的最小值。每次合并操作时,比较各个子序列的最小值,选出最小值并将其存入输出序列中,同时将该最小值所在的节点从赢者树中删除,并将其对应的子序列的下一个元素作为新的最小值插入到赢者树中进行调整,直到所有子序列的元素都被合并完成。
89 3
树(Tree)和二叉树(Binary Tree)——(代码篇)
树(Tree)和二叉树(Binary Tree)——(代码篇)
81 0
|
存储 数据格式
1367:查找二叉树(tree_a)
1367:查找二叉树(tree_a)
|
存储 数据库 索引
B-Tree和B+Tree特点
B - Tree和B + Tree特点
165 0
|
数据库 索引
B-Tree, B+Tree
B-Tree, B+Tree
88 0
|
前端开发
Tree Shaking和sideEffects配置
通过修改 sideEffects 配置选项,来设置CSS文件打包的时候取消 Tree Shaking 的影响
183 0
|
存储 区块链 数据库
Merkle Patrcia Tree原理
Merkle Patrcia Tree 是结合了Merkle Tree和Patricia Tree两种数据类型的优点的数据结构,所以我们接下来将分别讨论这几种树。 一 Merkle Tree 1  Merkle Tree Merkle Tree(梅克尔树)可以是二叉树,也可以是多叉树;最下面的叶子节点包含基数数据,非叶子节点存储的是其子节点的hash。
2369 0