当前位置: 代码网 > it编程>数据库>MsSqlserver > B树和B+树的详解讲解

B树和B+树的详解讲解

2024年08月01日 MsSqlserver 我要评论
B树和B+树的详解讲解

1.b树

前面我们已经学习了二叉查找树、2-3树以及它的实现红黑树。2-3树中,一个结点做多能有两个key,它的实现红黑树中使用对链接染色的方式去表达这两个key。接下来我们学习另外一种树型结构b树,这种数据结构中,一个结点允许多于两个key的存在。
b树是一种树状数据结构,它能够存储数据、对其进行排序并允许以o(logn)的时间复杂度进行查找、顺序读取、插入和删除等操作。

2.1 特性

在这里插入图片描述

2.2 存储数据

若参数m选择为5,那么每个结点最多包含4个键值对,我们以5阶b树为例,看看b树的数据存储。
在这里插入图片描述

2.3 b树的应用

在我们的程序中,不可避免的需要通过io操作文件,而我们的文件是存储在磁盘上的。计算机操作磁盘上的文件是通过文件系统进行操作的,在文件系统中就使用到了b树这种数据结构。

2.b+树

2.1 b+树和b树区别

b+树是对b树的一种变形树,它与b树的差异在于:

  1. 非叶结点仅具有索引作用,也就是说,非叶子结点只存储key,不存储value;
  2. 树的所有叶结点构成一个有序链表,可以按照key排序的次序遍历全部数据。

2.2 b+树存储数据

若参数m选择为5,那么每个结点最多包含4个键值对,我们以5阶b+树为例,看看b+树的数据存储。
在这里插入图片描述

2.3 b+树和b树的对比

b+ 树的优点在于:
1.由于b+树在非叶子结点上不包含真正的数据,只当做索引使用,因此在内存相同的情况下,能够存放更多的key。 2.b+树的叶子结点都是相连的,因此对整棵树的遍历只需要一次线性遍历叶子结点即可。而且由于数据顺序排列并且相连,所以便于区间查找和搜索。而b树则需要进行每一层的递归遍历。
b树的优点在于:
由于b树的每一个节点都包含key和value,因此我们根据key查找value时,只需要找到key所在的位置,就能找到value,但b+树只有叶子结点存储数据,索引每一次查找,都必须一次一次,一直找到树的最大深度处,也就是叶子结点的深度,才能找到value。

2.4b+树的应用

应用在数据库中。
在数据库的操作中,查询操作可以说是最频繁的一种操作,因此在设计数据库时,必须要考虑到查询的效率问题,在很多数据库中,都是用到了b+树来提高查询的效率;在操作数据库时,我们为了提高查询效率,可以基于某张表的某个字段建立索引,就可以提高查询效率,那其实这个索引就是b+树这种数据结构实现的。
例:

参考:黑马程序员java数据结构与java算法

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com