B树与B+树详解

2019-12-18  本文已影响0人  jianshujoker

定义

B树(英语:B-tree)是一种平衡的多叉树,能够保持数据有序。这种数据结构能够让查找数据、顺序访问、插入数据及删除的动作,都在对数时间内完成

性质

可以先不看性质(之前不了解的,直接看性质也记不住),直接看性质解析,这里列出来方便后面讲解用。一个m(一般m>=3)阶的B树或是空树、或是满足以下性质的树

  1. 根结点至少有两个子女(特殊情况:没有孩子的根结点,即根结点为叶子结点,整棵树只有一个根节点)
  2. 每个中间节点都包含k-1个关键字和k个孩子,其中 m/2 <= k <= m
  3. 每一个叶子节点都包含k-1个关键字,其中 m/2 <= k <= m
  4. 所有的叶子结点都位于同一层
  5. 每个节点中的关键字从小到大排列;中间节点的k关键字,左边子树的所有值都必须小于k关键字,右边子树的所有值都必须大于k关键字

性质解析

B树图解.png

插入、删除动态图

B+树

定义

B+树是B树的一种变形形式,B+树上的叶子结点存储关键字以及相应记录的地址,叶子结点以上各层作为索引使用

与B树差异

  1. 所有关键字都可以在叶子节点中找到,叶子结点本身依关键字的大小自小而大顺序链接。
  2. data只存在叶子节点
    如图:


    B+树差异.png

相比B树优点

  1. 单一节点存储更多元素,减少io次数;因为没有data
  2. 更好的范围查找;叶子节点形成了有序链表

常见索引问题与B+树结合看

上一篇 下一篇

猜你喜欢

热点阅读