聚簇索引为什么选择B+树

二叉查找树

二叉查找树也称为有序二叉查找树,左子树的值均小于根节点,则右子树的值均大于于根节点的值

局限性

对于某些情况,二叉查找树会退化成一个有n个节点的线性链,导致查找效率极差

二叉平衡树

带有平衡条件的二叉查找树,平衡条件必须满足(所有节点的左右子树高度差不超过1

弥补了二叉查找树极端情况下查找效率底下的问题

局限性

维护这种高度平衡所付出的代价比从中获得的效率收益还大

红黑树

一种弱平衡二叉树,相对比而二叉平衡树来说并没有那么严格要求平衡

因此维护平衡的代价也较低

B/B+树

平衡多路查找树,相对于二叉(红黑树),B/B+树每个内节点有多个分支,与红黑树相比,在相同的的节点的情况下,一颗B/B+树的高度远远小于红黑树的高度,这直接决定了访问磁盘的次数,高度越小,磁盘I/O所花的时间越少,查找效率也就越高

为什么选择B+树

B树和B+树的区别

  1. B+树中记录有关的信息均存放在叶结点,非叶结点仅具有索引作用

    而B树所有节点都带有

  2. B+树中所有叶子节点都是通过指针连接在一起,而B树不会

B+树的优点:

  1. 非叶子节点不会带上指向记录的指针,这样,一个块中可以容纳更多的索引项,可以降低树的高度,减少磁盘IO次数

  2. 叶子节点之间通过指针来连接,范围扫描将十分简单,而对于B树来说,则需要在叶子节点和内部节点不停的往返移动。具体的来讲,如何想扫描一次所有数据,对于b+树来说,可以从因为他们的叶子结点是连在一起的,所以可以横向的遍历过去。而对于b树来说,就这能中序遍历了

posted @   上好佳28  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示