b+树

作者: 一斗 | 来源:发表于2019-03-19 22:07 被阅读0次

B+Tree是在B-Tree基础上的一种优化,B-Tree中每个节点同时保存key和data,而B+Tree非叶子节点上只存储key值信息,这样可以增加每个节点存储的key值数量,降低B+Tree的高度,因为每一页的存储空间是有限的,如果data数据较大时将会导致每个节点(即一个页)能存储的key的数量很小。当存储的数据量很大时同样会导致B-Tree的深度较大,增大查询时的磁盘I/O次数,进而影响查询效率。

b树是一种多路平衡查找树,阶数表示一个节点最多有几个孩子节点。m阶b树定义如下:

  1. 每个节点至多有m-1个关键字
  2. 如果根节点不是叶子结点,则其至少有两颗子树(即1个关键字)
  3. 每个节点中关键字递增排序,每个关键字的左子树中的所有关键字都小于它,右子树中的所有关键字都大于它,
  4. 所有叶子节点都位于同一层


    b树.jpg

b+树除了以上要求外,还有

  • b+树包含2种类型的结点:内部结点(也称索引结点)和叶子结点。内部结点不保存数据,只用于索引,所有数据(或者说记录)都保存在叶子结点中。
  • 内部结点中的key都按照从小到大的顺序排列,对于内部结点中的一个key,左树中的所有key都小于它,右子树中的key都大于等于它。叶子结点中的记录也按照key的大小排列。
  • 每个叶子结点都存有相邻叶子结点的指针,叶子结点本身依关键字的大小自小而大顺序链接。


    b+树.jpg

参考
b树和b+树

相关文章

  • B+树

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

  • 聊一聊B+树

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

  • mysql 浅析

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

  • MySQL B+树介绍

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

  • B树、B+树、B*树

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

  • 底层数据结构(B+树 - 查找、插入和删除)

    B+树是什么? B+树是一种树; B+树(或者其子树)代表一个有序的键值对集合,通过键决定键值对顺序; B+树的节...

  • BoltDB(二)page 结构

    B+ 树模型 要明白 B+ 树模型,可以参考:MySQL 数据库索引 -- B+树模型[https://www.j...

  • MySQL:索引

    索引的底层实现 InnoDB存储引擎数据结构使用B+树 B+树 B+数据的基本结构如下图 为什么选用B+树 MyS...

  • MYSQL的索引与B+Tree

    MySQL 索引与 B+ 树 B+ 树 MySQL Innodb 存储引擎是使用 B+ 树来组织索引的。在介绍 B...

  • B+树的几点介绍

    B+树 这个作者通过图文介绍了什么是B+树

网友评论

      本文标题:b+树

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