MySQL数据库大森林:B树、B+树
1、二叉树:每个节点最多只有两个子树的树结构
2、B树和B+树
![](https://img2020.cnblogs.com/blog/804160/202110/804160-20211026175014301-2133043880.png)
2.1、区别
1)B+树只有叶子节点会存储指针,B树所有节点都带
2)B+树叶子节点存储了所有数据,B树在内部节点出现的数据不会出现在叶子节点
3)B+树所有叶子节点都是通过指针连在一起,B树不是
2.2、B+树优点
1)内部节点不存储指针,使得一个内部节点中可以容纳更多的数据
2)叶子节点通过指针连在一起范围扫描很方便,B树就要在叶子节点和内部节点之间不停往返
2.3、B树优点
对于内部节点,可以直接得到指针
2.4、为什么数据库索引用B+树
1)因为叶子节点上存储了所有的数据和索引而且相互之间用指针连在一起,对于范围查找不用跨层就能把数据查出来
2)因为非叶子节点不存储索引,所以每个节点能容纳更多数据,也就是树会更低,IO次数少
![](https://img2020.cnblogs.com/blog/804160/202110/804160-20211026175025822-1810179653.png)
作者:Java架构大仙
链接:https://www.jianshu.com/p/f1ef729dafff
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
如果有来生,要做一片树叶。
春天恋上枝,炎夏恋上水。
深秋恋上土,东来化作泥。
润物细无声,生生世世恋红尘。