mysql 几阶b树_在学到MySQL索引时,涉及到了B树和B+树.聊一聊

1 B 树

在介绍 B + 树之前, 先简单的介绍一下 B 树,这两种数据结构既有相似之处,也有他们的区别,最后,我们也会对比一下这两种数据结构的区别。

1.1 B 树概念

B 树也称 B - 树, 它是一颗多路平衡查找树。二叉树我想大家都不陌生,其实,B 树和后面讲到的 B + 树也是从最简单的二叉树变换而来的,并没有什么神秘的地方,下面我们来看看 B 树的定义。

每个节点最多有 m-1 个关键字(可以存有的键值对)。

根节点最少可以只有 1 个关键字。

非根节点至少有 m/2 个关键字。

每个节点中的关键字都按照从小到大的顺序排列,每个关键字的左子树中的所有关键字都小于它,而右子树中的所有关键字都大于它。

所有叶子节点都位于同一层,或者说根节点到每个叶子节点的长度都相同。

每个节点都存有索引和数据,也就是对应的 key 和 value。

所以,根节点的关键字数量范围:1 <= k <= m-1,非根节点的关键字数量范围:m/2 <= k <= m-1。

另外,我们需要注意一个概念,描述一颗 B 树时需要指定它的阶数,阶数表示了一个节点最多有多少个孩子节点,一般用字母 m 表示阶数。

我们再举个例子来说明一下上面的概念,比如这里有一个 5 阶的 B 树,根节点数量范围:1 <= k <= 4,非根节点数量范围:2 <= k <= 4。

下面,我们通过一个插入的例子,讲解一下 B 树的插入过程,接着,再讲解一下删除关键字的过程。

1.2 B 树插入

插入的时候,我们需要记住一个规则:判断当前结点 key 的个数是否小于等于 m-1,如果满足,直接插入即可,如果不满足,将节点的中间的 key 将这个节点分为左右两部分,中间的节点放到父节点中即可。

例子:在 5 阶 B 树中,结点最多有 4 个 key, 最少有 2 个 key(注意:下面的节点统一用一个节点表示 key 和 value)。

插入 18,70,50,40

a95e61e00163108d34aa5382ff9393d4.png

插入 22

你可能感兴趣的:(mysql,几阶b树)