当前位置: 代码网 > it编程>软件设计>算法 > 详解B+树存储原理以及和B树对比(保姆级教学)

详解B+树存储原理以及和B树对比(保姆级教学)

2024年07月31日 算法 我要评论
的每一个节点都包含key和value,因此我们根据key查找value时,只需要找到key所在的位置,就能找到value,但B+树只有叶子结点存储数据,索引每一次查找,都必须一次一次,一直找到树的最大深度处,也就是叶子结点的深度,才能找到value。执行 select * from user where id>=10 and id

一、b+树的结构特点

1.非叶子节点仅具有索引作用,也就是说,非叶子节点只能存储key,不能存储value

2.树的所有叶节点构成一个有序链表,可以按照key排序的次序依次遍历全部数据。

二、b+树存储数据

若参数m选择为5,那么每个节点最多包含4个键值对,我们以5阶b+树为例,看看b+树的数据存储。

(a) 在空树当中插入5

(b)继续插入8,10,15

(c)继续插入16

(d)继续插入17

(e)继续插入18

(f)继续插入6,9,1920,21,22

(h)继续插入7

三、b+树和b树的对比

b+ 树的优点在于:

1.由于b+树在非叶子结点上不包含真正的数据,只当做索引使用,因此在内存相同的情况下,能够存放更多的key。

2.b+树的叶子结点都是相连的,因此对整棵树的遍历只需要一次线性遍历叶子结点即可。而且由于数据顺序排列并且相连,所以便于区间查找和搜索。而b树则需要进行每一层的递归遍历。

b树的优点在于:

由于b树的每一个节点都包含key和value,因此我们根据key查找value时,只需要找到key所在的位置,就能找到value,但b+树只有叶子结点存储数据,索引每一次查找,都必须一次一次,一直找到树的最大深度处,也就是叶子结点的深度,才能找到value

四、b+树在数据库中的应用

在数据库的操作中,查询操作可以说是最频繁的一种操作,因此在设计数据库时,必须要考虑到查询的效率问题,在很多数据库中,都是用到了b+树来提高查询的效率;

在操作数据库时,我们为了提高查询效率,可以基于某张表的某个字段建立索引,就可以提高查询效率,那其实这个索引就是b+树这种数据结构实现的。

未建立主键索引查询

执行 select * from user where id=18 ,需要从第一条数据开始,一直查询到第6条,发现id=18,此时才能查询出

目标结果,共需要比较6次;

建立主键索引查询

区间查询

执行 select * from user where id>=10 and id<=18 ,如果有了索引,由于b+树的叶子结点形成了一个有序链表,所以我们只需要找到id为12的叶子结点,按照遍历链表的方式顺序往后查即可,效率非常高。

(0)

相关文章:

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

发表评论

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