B树和B+树分别是什么?区别在哪里?MySQL使用的是哪一种树?

B树,每个节点都存储key和data,所有节点组成这棵树,并且叶子节点指针为nul,叶子结点不包含任何关键字信息。

B+树,所有的叶子结点中包含了全部关键字的信息,及指向含有这些关键字记录的指针,且叶子结点本身依关键字的大小自小而大的顺序链接,所有的非终端结点可以看成是索引部分,结点中仅含有其子树根结点中最大(或最小)关键字。

为什么MySQL用B+树呢?

  • B+ 树查询效率更稳定(因为因为B+ 树每次只有访问到叶子节点才能找到对应的数据 而在 B 树中 非叶子节点也会存储数据)
  • B+ 树的查询效率更高 (因为通常B+ 树比 B 树更矮胖 阶数更大 深度更低 查询所需要的磁盘 I/O 也会更少 。 同样的磁盘页大小 B+ 树可以存储更多的节点关键字)
  • 对索引进行范围查询时 B+ 树效率也更高(因为所有关键字都出现在B+ 树的叶子节点中 并通过有序链表进行了链接 。 而在 B 树中则需要通过中序遍历才能完成范围查找 效率要低很多)

B 树可以看作是对2-3查找树的一种扩展,即他允许每个节点有M-1个子节点。

  • 根节点至少有两个子节点
  • 每个节点有M-1个key,并且以升序排列
  • 位于M-1和M key的子节点的值位于M-1 和M key对应的Value之间
  • 其它节点至少有M/2个子节点

下图是一个M=4 阶的B树:

B树和B+树分别是什么?区别在哪里?MySQL使用的是哪一种树?相关推荐

  1. PTA 03-树1 树的同构 (25分)

    题目地址 https://pta.patest.cn/pta/test/15/exam/4/question/711 5-3 树的同构   (25分) 给定两棵树T1和T2.如果T1可以通过若干次左右 ...

  2. BZOJ3435[Wc2014]紫荆花之恋——动态点分治(替罪羊式点分树套替罪羊树)

    题目描述 强强和萌萌是一对好朋友.有一天他们在外面闲逛,突然看到前方有一棵紫荆树.这已经是紫荆花飞舞的季节了,无数的花瓣以肉眼可见的速度从紫荆树上长了出来.仔细看看的话,这个大树实际上是一个带权树.每 ...

  3. 7-3 树的同构 (25 分)(思路加详解)来呀baby!!!!!!!!

    一:题目 7-3 树的同构 (25 分) 给定两棵树T1和T2.如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是"同构"的.例如图1给出的两棵树就是同构的,因为我们把 ...

  4. 7-8 树的遍历 (10 分)

    7-8 树的遍历 (10 分) 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格式: 输入第一行给出一个正整数N(≤30),是二叉树中结点的个数 ...

  5. 【CCCC】L2-006 树的遍历 (25分),根据后序与中序遍历建立二叉树(我讨厌树,系列1)

    problem L2-006 树的遍历 (25分) 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格式: 输入第一行给出一个正整数N(≤30), ...

  6. 树的同构 (25分)

    树的同构 (25分) 思路分析:树的同构,顾名思义两个树是否有一样的结构,每一个孩子结点的孩子的数量和值都要相同,但是它所在的位置可以左右交换(不是说两个父亲结点的孩子互相交换,而是说父亲结点的下一层 ...

  7. 从B 树、B+ 树、B* 树谈到R 树

    作者:July.weedge.Frankie.编程艺术室出品. 说明:本文从B树开始谈起,然后论述B+树.B*树,最后谈到R 树.其中B树.B+树及B*树部分由weedge完成,R 树部分由Frank ...

  8. B树、B+树其实很简单,看不懂你找我

    一. B树的定义 1.1. B树概念与使用场景 B树(B-tree,所以很多人又称为B-树) 是一种自平衡的树,一个节点可以拥有2个以上的子节点,能够保持数据有序.这种数据结构能够让查找数据.顺序访问 ...

  9. 【数据结构-查找】4.五千字干活长文带你搞懂——B树和B+树

    B树 B树的定义(为什么需要B树) B树是一类树,也称为了 平衡的多路查找树.包括B树.B+树.B*树等,是一棵 自平衡的搜索树,它类似普通的平衡二叉树,不同的一点是B树允许每个结点有更多的子结点.B ...

最新文章

  1. 分享我们用Leangoo看板工具做的采购看板,超级好用
  2. PAT L3-002. 堆栈
  3. Java 多线程Thread
  4. 男子借款70万前后还了1600万仍未还清,如何避免套路贷?
  5. ubuntu安装配置elasticSearch(vagrant)
  6. mobi格式电子书_进阶能力 | 了解常见的电子书格式
  7. 利用pandas,pyplot 绘制柱状图
  8. 将ping命令结果输出到文本
  9. vue视频保存不下来_视频素材制作小技巧
  10. Adobe AIR教程:面向iOS设备的原生扩展
  11. psenet的eval_ctw1500.py解析
  12. uni-app的生命周期
  13. 分享李刚javaweb跟webservice视频教程
  14. win10超好看的鼠标主题,你也来试试吧
  15. 通讯录_通讯录拦截防爆
  16. 再谈本土EDA竞争力顺便聊聊DTCO在中国落地
  17. 抖音快手短视频 影视后期制作工具网址大全
  18. 分布式理论与分布式架构设计理论
  19. Python类型说明符、格式限定符(格式说明符)
  20. P1129 矩阵游戏

热门文章

  1. linux remote
  2. 卷积神经网络理解及1*1卷积核的作用
  3. 单目深度估计方法综述
  4. 全面感知通用目标:建模、分割和重建(CVPR2021)
  5. 从计算机视觉(slam)和摄影测量两个维度进行BA算法原理推导
  6. 三维形状和外观重建一次全搞定: DeepSurfels在线融合实现逼真重建
  7. 表面缺陷检测数据集汇总及其相关论文集收集 | Github开源
  8. 3D点云two-stage目标检测方法优化综述
  9. 点云配准(一 两两配准)
  10. java Opencv 图片修复 Photo