美文网首页
B树和B+树

B树和B+树

作者: ZMRWEGo | 来源:发表于2018-12-10 16:16 被阅读4次

B树和B+树的出现是为了查询数据时减少磁盘的IO次数,我们知道平衡二叉查找树是一种查询速度很快的数据结构。它的时间复杂度为(logN),但是它由于是一个二叉树,所以树的高度相对于多叉树来讲是比较高的,所以为了平衡磁盘IO与时间复杂度直接的关系,我们引入了B树和B+树

一、 何为B树?

首先我们要知道B树是一种多路平衡查找树,从这里我们可以知道,B树是一个多叉树,同时它又是一个平衡树,它的作用就是用来进行查询的。
首先我们从一个具体的B树来探究一下B树的定义:


从图可以看出,B树的高度与二叉树相比减少了

定义

根据Knuth的定义,一个m阶的B树是一个有以下属性的树:

  1. 每一个节点最多有m个子节点
  2. 每一个非叶子节点(除根节点)最少有[m/2]个子节点
  3. 如果根节点不是叶子节点,那么它至少有两个子节点
  4. 有k个子节点的非叶子节点有K-1个键
  5. 所有的叶子节点都在同一层
    关于B树的插入和删除操作,我们只需记着一个原则,在进行插入或删除操作后,一定要查看树是否满足约束条件,若不满足,则进行调整

二、何为B+树?

B+树是由B树演变而来,通常用于数据库和操作系统的文件系统中,有着比B树更高的查询性能

  1. 有m个子树的节点包含有m个元素
  2. 根节点和分支节点不保存数据,只用于索引,所有数据都保存在叶子节点中
  3. 叶子节点会包含所有的关键字,以及指向数据记录的指针,并且叶子节点本身是根据关键字的大小从小到大顺序链接。


相关文章

  • 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/ckarhqtx.html