B树和B+树分别是什么?区别在哪里?MySQL使用的是哪一种树?
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使用的是哪一种树?相关推荐
- PTA 03-树1 树的同构 (25分)
题目地址 https://pta.patest.cn/pta/test/15/exam/4/question/711 5-3 树的同构 (25分) 给定两棵树T1和T2.如果T1可以通过若干次左右 ...
- BZOJ3435[Wc2014]紫荆花之恋——动态点分治(替罪羊式点分树套替罪羊树)
题目描述 强强和萌萌是一对好朋友.有一天他们在外面闲逛,突然看到前方有一棵紫荆树.这已经是紫荆花飞舞的季节了,无数的花瓣以肉眼可见的速度从紫荆树上长了出来.仔细看看的话,这个大树实际上是一个带权树.每 ...
- 7-3 树的同构 (25 分)(思路加详解)来呀baby!!!!!!!!
一:题目 7-3 树的同构 (25 分) 给定两棵树T1和T2.如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是"同构"的.例如图1给出的两棵树就是同构的,因为我们把 ...
- 7-8 树的遍历 (10 分)
7-8 树的遍历 (10 分) 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格式: 输入第一行给出一个正整数N(≤30),是二叉树中结点的个数 ...
- 【CCCC】L2-006 树的遍历 (25分),根据后序与中序遍历建立二叉树(我讨厌树,系列1)
problem L2-006 树的遍历 (25分) 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格式: 输入第一行给出一个正整数N(≤30), ...
- 树的同构 (25分)
树的同构 (25分) 思路分析:树的同构,顾名思义两个树是否有一样的结构,每一个孩子结点的孩子的数量和值都要相同,但是它所在的位置可以左右交换(不是说两个父亲结点的孩子互相交换,而是说父亲结点的下一层 ...
- 从B 树、B+ 树、B* 树谈到R 树
作者:July.weedge.Frankie.编程艺术室出品. 说明:本文从B树开始谈起,然后论述B+树.B*树,最后谈到R 树.其中B树.B+树及B*树部分由weedge完成,R 树部分由Frank ...
- B树、B+树其实很简单,看不懂你找我
一. B树的定义 1.1. B树概念与使用场景 B树(B-tree,所以很多人又称为B-树) 是一种自平衡的树,一个节点可以拥有2个以上的子节点,能够保持数据有序.这种数据结构能够让查找数据.顺序访问 ...
- 【数据结构-查找】4.五千字干活长文带你搞懂——B树和B+树
B树 B树的定义(为什么需要B树) B树是一类树,也称为了 平衡的多路查找树.包括B树.B+树.B*树等,是一棵 自平衡的搜索树,它类似普通的平衡二叉树,不同的一点是B树允许每个结点有更多的子结点.B ...
最新文章
- 分享我们用Leangoo看板工具做的采购看板,超级好用
- PAT L3-002. 堆栈
- Java 多线程Thread
- 男子借款70万前后还了1600万仍未还清,如何避免套路贷?
- ubuntu安装配置elasticSearch(vagrant)
- mobi格式电子书_进阶能力 | 了解常见的电子书格式
- 利用pandas,pyplot 绘制柱状图
- 将ping命令结果输出到文本
- vue视频保存不下来_视频素材制作小技巧
- Adobe AIR教程:面向iOS设备的原生扩展
- psenet的eval_ctw1500.py解析
- uni-app的生命周期
- 分享李刚javaweb跟webservice视频教程
- win10超好看的鼠标主题,你也来试试吧
- 通讯录_通讯录拦截防爆
- 再谈本土EDA竞争力顺便聊聊DTCO在中国落地
- 抖音快手短视频 影视后期制作工具网址大全
- 分布式理论与分布式架构设计理论
- Python类型说明符、格式限定符(格式说明符)
- P1129 矩阵游戏