MySQL的索引结构使用的是B+树,因而B+树是大厂面试的高频题。
B树
-
B树的概念
B树又称为B-树,是一种平衡多路查找树,描述B树,一般需要指定其阶数M,阶数指的是一个节点包含的子节点最大数量。当M取2时,即为常见的二叉树。其有如下性质:
- 每个节点最多有 M - 1 个关键字
- 除根节点外,其余的节点至少有ceil(M/2)-1个关键字(ceil为向上取整函数)
- 每个节点中的关键字都按照从小到大的顺序排列,每个关键字的左子树中的所有关键字都小于它,而右子树中的所有关键字都大于它
- 所有叶子节点都位于同一层,或者说根节点到每个叶子节点的长度都相同
-
B树的插入操作
1.找到关键字的插入位置,一定时叶节点位置,进行插入操作
2.插入后,如果当前节点的关键字数量小于等于M - 1,则结束,否则执行步骤3
3.进行分裂操作,当前节点按中间关键字分裂成三部分,中间关键字插入到父节点中,左边部分,称为中间关键字的左节点,右边部分称为中间关键字的右节点,然后当前节点指向父节点,转到2,递归执行操作。 -
B树的构建过程
下面以构建一个5阶树为例,介绍B树构建过程- 依次插入关键字3, 5, 2, 6
- 依次插入关键字3, 5, 2, 6