众所周知,mysql的索引用的是B+树
那么到底啥是B+树呢?今天学习了一下
下面总结一下我今天学到的知识!
若有错误感谢纠正
首先
B-树念作B树(而不是B减树)
B+树念作B加树
1、B-树
1.1、B树概念
- 每个结点最多有m个分支(子树) ;而最少分支数要看是否为根结点,如果是根结点且不是叶子结点则至少有2个分支,非根非叶结点至少有「m/2⌉ 个分支。
- 有n (k<=n<=m) 个分支的结点有n-1个关键字,它们按递增顺序排列。k=2(根结点)或「m/2⌉ (非根结点)
- 结点内各关键字互不相等。
- 叶结点处于同一层;可以用空指针表示,是查找失败到达的位置。
阶数是人为规定的,下图为五阶B树。
节点结构体定义示意图:
p所指向的结点关键字小Key+1大于Keyi。
1.2、关键字的查找
从根节点开始,从左往右扫