先看一下B树的结构:
下面这个是B+树的结构:
如图所示,区别有以下两点:
1. B+树中只有叶子节点会带有指向记录的指针,而B树则所有节点都带有,在内部节点出现的索引项不会再出现在叶子节点中。
2. B+树中所有叶子节点都是通过指针连接在一起,而B树不会。
3. B+树的叶子节点中包含了所有的数据,而B树中没有,它的数据还需要回调父节点
B+树的优点:
1. 非叶子节点不会带上指针,这样,一个块中可以容纳更多的索引项,一是可以降低树的高度。二是一个内部节点可以定位更多的叶子节点。
2. 叶子节点之间通过指针来连接,范围扫描将十分简单,而对于B树来说,则需要在叶子节点和内部节点不停的往返移动。
B树的优点:
对于在内部节点的数据,可直接得到,不必根据叶子节点来定位。
参考:https://www.cnblogs.com/ivictor/p/5849061.html