什么是B+树??

Posted 杨心漂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是B+树??相关的知识,希望对你有一定的参考价值。

上一篇中,我们了解了B树,辣么。。B+树又是什么呢??

 

一:定义:B+树是基于B树的,是B树的变形,也是一种多路搜索树。查询性能更加出色。

 

 

1.每个父节点元素出现在子节点中,是子节点的最大或最小元素。

2.根节点的最大元素也是B+树中的最大元素

3.所有关键字都在叶子结点出现,包含了全量元素信息。

5.每个叶节点都带有指向下一个元素的指针,从而形成了一个有序链表。

 

提出一个相关的概念卫星数据,在算法导论里,是指 一条纪录(一个对象中)中除了关键字key以外的其他数据。在B树中,中间节点和叶子节点都带有卫星数据,而在B+树中,只有叶节点带有卫星数据,中间节点只是索引,没有任何数据。

数据库的聚集索引(索引中键值的逻辑顺序决定了表中相应行的物理顺序)中,叶节点直接包含卫星数据,非聚集索引(索引的逻辑顺序与磁盘上行的物理存储顺序不同)中,叶节点含有指向叶节点的指针。

二:查找:

B+树大致上与B树一样,但是也有不同:

1. 间结点无卫星数据,磁盘页中可以存更多的元素。B+树相对高度更小,I/O次数更少。

2. B树查询需要最终找到叶子节点,B-树找到匹配元素即可

3. B树查找性能较差(最好情况是查根节点,最坏是查到叶子节点),B树每一次都稳定。

4. B树范围查询时,只能中序遍历。B+树在链表上遍历即可。

 

三:插入删除:

  与B树类似,不再赘述。

 

以上是关于什么是B+树??的主要内容,如果未能解决你的问题,请参考以下文章

索引是什么,索引的数据结构.B树,B+树

索引是什么,索引的数据结构.B树,B+树

B树B-树B+树B*树都是什么

B树B-树B+树B*树都是什么

《深入浅出话数据结构》系列之什么是B树B+树?为什么二叉查找树不行?

什么是树(平衡树,排序树,B树,B+树,R树,红黑树)