美文网首页
B树和B+树

B树和B+树

作者: 啦啦啦_9a5f | 来源:发表于2019-10-25 16:20 被阅读0次

王道数据结构知识点整理

B树(多路平衡查找树)

  • 阶:B树中所有结点的孩子结点树的最大值

  • 一棵B树可以是空树,如果不为空树必须满足如下性质:

    1.树中每个非叶结点至多有m棵树,至少有m/2取上界个子树(除根结点外)
    2.树中每个非叶结点至多有m-1个关键字,至少有m/2去上界-1个关键字
    3.所有的叶结点都出现在同一层次上,并且不带信息(可以视为外部结点或类似于折半查找判定树的查找失败结点,实际上这些结点不存在,指向这些结点的指针为空)
    4.B树是所有结点的平衡因子均等于0 的多路查找树,即B树也是平衡因子均等于0 的平衡二叉树。

B树的高度

B树中的大部分操作所需的磁盘存取次数与B树的高度成正比,应该明确B树的不包括最后的不带任何信息的叶结点所处的那一层
对任意一棵包含n个关键字、高度为h、阶数为m的B树:


图片.png
B树的查找

B树的查找包含两个基本的操作:1.在B树中查找;2.在结点中查找
由于B树常存储在磁盘上,因此前一个查找操作是在磁盘上进行的,而后一个查找操作是在内存中进行的,即在找到目标结点后,先将结点中的信息度如内存,然后采用顺序查找法或折半查找法查找等于K的关键字

B+树

B+树是应数据库所需而出现的一种B树的变形树
一棵m阶的B+树需满足下列的条件:
1.每个分支非结点最多有m棵子树,最少有m/2取上界个子树
2.结点的子树个数与关键字个数相等
3.所有叶结点包含全部关键字及指向相应记录的指针,叶结点中将关键字按带大小顺序排列,并且相邻叶结点按大小顺序相互连接起来
4.所有分支结点中仅包含它的各个自己诶单重关键字的最大值及指向其子结点的指针

m阶的B+树与m阶的B树的主要差异:
1.在B+树中,关键字的个数等于结点的子树个数
在B树中,关键字的个数等于结点的子树个数-1
2.在B+树中,叶结点包含信息,所有非叶结点仅其索引作用,非叶结点中的每个索引项值含有对应子树的最大关键字和指向该子树的指针,不含有关键字对应记录的存储地址
B树中,叶结点不包含信息,所有非叶结点代表类似于折半查找判定树查找失败的结点。
3.在B+树中,叶结点包含了全部关键字,即在非叶结点中出现的关键字也会出现在叶结点中,而在B树中,叶结点包含的关键字和其他结点包含的关键字是不重复的。
4.B+树在查找过程中,非叶结点的关键字值等于给定值时并不终止,而是继续向下查找,直到叶结点上的该关键字为止

相关文章

  • B树B-树和B+树的总结

    参考:B树和B+树的总结B树、B-树、B+树、B*树都是什么 总结 利用平衡树的优势加快查询的稳定性和速度;B+树...

  • MySQL索引的底层数据结构

    前言 一、索引类型 B+树 为什么是B+树而不是B树? 首先看看B树和B+树在结构上的区别 可以看到: B树在每个...

  • B树、B+树、B*树

    1)什么是B树、B+树、B树?2)B树、B+树、B树的作用?3)B树、B+树、B*树的应用场景? 一、什么是B树、...

  • mysql 浅析

    索引的结构 B+树 二叉查找树、平衡二叉树 、B树、 B+树 B树: B+树: B+树中各个页之间是通过双向链表连...

  • B+树

    B+树概况 InnoDB使用了B+树索引模型 每个索引在InnoDB里面对应一棵B+树 B+树特点 m阶B+树每个...

  • mysql 索引

    1.b树和b+树的区别 b+树 1000万数据 有几层结构 2.

  • 树-二叉搜索树-平衡二叉树-红黑树-B树B+树

    关于树的总结从二叉树->二叉搜索树->平衡二叉树->红黑树->B树与B+树 B+树介绍 B树、B-树、B+树、B*...

  • MySQL B+树介绍

    MySQL B+树介绍 B+树的演变 二叉树 --> 二叉查找树 --> 平衡二叉树 --> B树 --> B+树...

  • 聊一聊B+树

    标签: 图解B+树 | B+树代码|mysql 聚集索引|mysql B+树索引| 前言   虽然B+是B-演化过...

  • 转:B+树

    B+树 B+树和二叉树、平衡二叉树一样,都是经典的数据结构。B+树由B树和索引顺序访问方法(ISAM,是不是很熟悉...

网友评论

      本文标题:B树和B+树

      本文链接:https://www.haomeiwen.com/subject/qbisvctx.html