聚簇索引为什么选择B+树
二叉查找树也称为有序二叉查找树,左子树的值均小于根节点,则右子树的值均大于于根节点的值
局限性
对于某些情况,二叉查找树会退化成一个有n个节点的线性链,导致查找效率极差
二叉平衡树
带有平衡条件的二叉查找树,平衡条件必须满足(所有节点的左右子树高度差不超过1
弥补了二叉查找树极端情况下查找效率底下的问题
局限性
维护这种高度平衡所付出的代价比从中获得的效率收益还大
红黑树
一种弱平衡二叉树,相对比而二叉平衡树来说并没有那么严格要求平衡
因此维护平衡的代价也较低
B/B+树
平衡多路查找树,相对于二叉(红黑树),B/B+树每个内节点有多个分支,与红黑树相比,在相同的的节点的情况下,一颗B/B+树的高度远远小于红黑树的高度,这直接决定了访问磁盘的次数,高度越小,磁盘I/O所花的时间越少,查找效率也就越高
为什么选择B+树
B树和B+树的区别
B+树中记录有关的信息均存放在叶结点,非叶结点仅具有索引作用
而B树所有节点都带有
B+树中所有叶子节点都是通过指针连接在一起,而B树不会
B+树的优点:
-
非叶子节点不会带上指向记录的指针,这样,一个块中可以容纳更多的索引项,可以降低树的高度,减少磁盘IO次数
-
叶子节点之间通过指针来连接,范围扫描将十分简单,而对于B树来说,则需要在叶子节点和内部节点不停的往返移动。具体的来讲,如何想扫描一次所有数据,对于b+树来说,可以从因为他们的叶子结点是连在一起的,所以可以横向的遍历过去。而对于b树来说,就这能中序遍历了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】