为什么要用B+树

B+树的优势

支持范围查询:B+树在进行范围查询时,只需要从根节点一直遍历到叶子节点,因为数据都存储在叶子节点上,而且叶子节点之间有指针连接,可以很方便的进行范围查询

支持排序:B+树的叶子节点按照关键字顺序存储,可以快速支持排序操作,提供排序效率

存储更多的索引数据:因为它的非叶子节点只能存储索引关键字,不存储实际数据,因此可以存储更多的索引数据

在节点分裂和合并时,IO操作少:B+树的叶子节点的大小是固定的,而且节点的大小一般都会设置为一页的大小,这就使得节点分裂和合并时,IO操作很少,只需读取和写入一页

有利于磁盘预读:由于B+树的节点大小是固定的,因此可以很好的利用磁盘预读特性,一次行读取多个节点到内存中,可以减少IO操作次数,提高查询效率

有利于缓存:B+树的非叶子结点只存储执行子节点的指针,二步存储数据,这样可以使得缓存能搞容纳更多的索引数据,从而提供缓存的命中率,加快查询速度

为什么不使用B数和红黑树

B+树只有叶子节点存储数据,而非叶子节点不存储数据,可以存储更多的索引数据

节点大小固定,可以存储更多的索引数据

叶子节点之间是双向链表链接的,可以很方便的进行范围查询

叶子节点按照关键子顺序存储,更好的支持排序

所以,使用B+树实现索引有很多好处,比如我们前面提到的支持范围查询、有利于磁盘预读、有利于优化排序等等。而这些是红黑树和B树做不到的

相关推荐
csdn_aspnet14 分钟前
C# 第k个最小元素(K’th Smallest Element)
算法·c#·排序算法
BioRunYiXue19 分钟前
RACE技术全攻略:从全长克隆到靶基因验证
java·javascript·网络·人工智能·科技·算法·eclipse
ZPC821041 分钟前
joy 及sensor_msgs
算法
Three_ST43 分钟前
沐神-动手学习深度学习-习题答案4.4模型选择,欠拟合,过拟合
人工智能·python·深度学习·学习·算法
CIO_Alliance1 小时前
AI深度系列(2)| CNN卷积池化感受野原理:从局部感知到全局视野
人工智能·深度学习·线性代数·算法·计算机视觉·企业ai转型·企业cio联盟
探物 AI1 小时前
机器人清理墙角蜘蛛网,背后需要哪些算法?——从视觉分割到贴墙力控
算法·机器人
青 春 记 忆1 小时前
LeetCode 226. 翻转二叉树|Python 解法详解
python·算法·leetcode
民乐团扒谱机1 小时前
【微科普】压缩感知(CS):违反了奈奎斯特采样定理?不先采集也能还原信号?大白话讲透稀疏采样、L1重建与OMP,一文吃透附代码
python·神经网络·线性代数·算法·数学建模·压缩感知·奈奎斯特
88号技师1 小时前
2026年SCI-分数牛顿衍生优化算法Fractional Newton-derived optimizer-附Matlab免费代码
开发语言·算法·数学建模·matlab·优化算法
夏玉林的学习之路2 小时前
算法7.链式栈
算法