• B+树


    参考:https://mp.weixin.qq.com/s/rDCEFzoKHIjyHfI_bsz5Rw

       https://mp.weixin.qq.com/s/jRZMMONW3QP43dsDKIV9VQ

    问题:数据库中查找数据常见操作有查找某一数据、范围查询,B树的范围查询就要用到中序遍历了,这样就会很繁琐。

      B树能极大减少磁盘IO次数,所以可以在B树的基础之上进行修改,所以B+树登场了。

     

    一个m阶的B+树具有如下几个特征:

      1.根结点至少有两个子女

      2.有k个子树的中间节点包含有k个元素(B树中是k-1个元素),每个元素不保存数据,只用来索引,所有数据都保存在叶子节点。

      3.所有的叶子结点中包含了全部元素的信息,及指向含这些元素记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。 

      4.所有的中间节点元素都同时存在于子节点,在子节点元素中是最大(或最小)元素。

               

    B+树范围查找3~11过程:

               

    B+树与B-树区别:

      1.关键字对应的子树数量不同

        B+树,n个关键字对应n棵子树,关键字代表子树的最大(小)元素

        B-树,n个关键字有n+1棵子树,关键字用来划分值域

      2.非叶子结点不同

        B+树,非叶子结点存储的是索引,数据在链表中

        B-树,非叶子结点存储的是数据

      3.叶子结点不同

        B+树,叶子节点包含全部关键字信息,以及这些关键字的指针,而且叶子节点本身按照大小顺序链接。
        B- 树,叶子节点只包含当前节点的信息,没有全部的信息,而且叶子节点也没有按照顺序链接

      4.查找不同

        B+树,查找元素需要到叶子结点,查找性能稳定

        B-树,找到就可以返回

  • 相关阅读:
    [转][html5]网页横屏
    [转][EasyUI]扩展 DateBox
    [转][C#]枚举的遍历Enum
    [转][C#]单例模式之懒加载
    [C#][Quartz]添加监听器
    [C#][Quartz]帮助类
    [转]Win 10 的 Win 按键没反应
    转来的--轻松自动化---selenium-webdriver(python) (七)---定位iframe——转来的
    安装charles
    遇到的问题汇总
  • 原文地址:https://www.cnblogs.com/youayou/p/11359689.html
Copyright © 2020-2023  润新知