数据结构与算法--B+树看它就够了

B+树

​ 对于数据库,我们主要做到三点:查询效率高、减少内存耗费、支持区间查找,通过改造二叉查找树,我们发明了B+树来存储数据库的索引

支持区间查找

​ 树中节点只作为索引,每个叶子节点串在一条双向链表上,这样我们想要查询某个区间,只需要找到最小值,然后通过链表遍历即可。

在这里插入图片描述

减少内存耗费

​ 上图中每个节点至少占用索引值+两个指针那么大内存,如果十亿个节点(20GB)计算机很可能装不下。

​ 我们可以通过把索引存储在磁盘上解决内存耗费问题

查询效率高

​ 通过把索引存储在磁盘上解决了内存耗费问题,但相应的效率就会降低(内存访问速度是磁盘的上万倍)

​ 为了减少磁盘访问次数(也就是磁盘IO操作),我们就需要降低树的高度(因为每查询一个节点都需要访问一次磁盘,高度降低了,找到对应叶子节点需要的IO操作也就降低了),所以我们可以把二叉树改为多叉树

叉数并不是越多越好,我们知道磁盘中的数据都是按页读取的(一页4kb),也就是说一次IO操作最多读取4kb数据,因此我们要保证节点小于4kb

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值