B+树概念理解(学习笔记)

B+树概念理解(学习笔记)

1.B+树是对B树的变种,推荐阅读我的上篇博客(https://blog.csdn.net/weixin_42111859/article/details/104060173),里面有关于B树的概念理解,两者是十分相似的。

2.B+树和B树主要差异:
(1)B+树节点关键字个数等于子树个数,非根节点关键字个数取值范围是[ceil(m/2),m]。如果根节点不是终端节点,那么至少有2棵子树。故根节点关键字取值范围是[1,m]。而B树中关键字个数=子树个数-1,非根节点关键字个数取值范围是[ceil(m/2)-1,m-1],根节点关键字取值范围是[1,m-1]。(ceil表示向上取整)

(2)B树中非叶节点存储关键字的同时也存储值(这个值是对应记录的地址),是一种映射关系(Map),而B+树中非叶节点只存储键(索引),没有数据。

(3)假设节点关键字 k1,k2,…kn,对应子树t1,t2,…tn。子树ti的关键字大小取值范围( k[ i-1 ],k[ i ] ],并且一定包含k[ i ]。(关键字递增排序)

(4)叶节点存储全部关键字,并且还包含了关键字对应的记录地址。所有叶节点构成了一个有序表。
(5)下面举一个3叉B+树的例子:
在这里插入图片描述3.B+树的优势:
(1)非叶节点只有索引没有数据,所以相同的磁盘空间可以容纳更多节点,磁盘I/O次数减少,提高性能。

(2)B树不一定查找到叶节点获取数据,但B+树需要查找到叶节点获取数据,时间代价取决于树的深度。树的深度稳定时,查询时间也是稳定的。

(3)B+树所有叶节点组成了有序链表(链块表),范围查询更方便,假设范围[x1,x2],首先多路查询到x1,然后遍历链表直到找到x2为止。

4.其他:插入删除查找类似于B树,不再累述

转载请注明出处,谢谢

猜你喜欢

转载自blog.csdn.net/weixin_42111859/article/details/104085939