b树和b+树有什么区别?

B+树改进了B树,让内结点只作索引使用,去掉了其中指向data record的指针。

1.B+树中只有叶子节点会带有指向记录的指针(ROWID),而B树则所有节点都带有,在内部节点出现的索引项不会再出现在叶子节点中。B+树中所有叶子节点都是通过指针连接在一起,而B树不会。
在这里插入图片描述

2.B树的优点:对于在内部节点的数据,可直接得到,不必根据叶子节点来定位。B+树的优点:非叶子节点不会带上ROWID,一个块中可以容纳更多的索引项,一是可以降低树的高度。
在这里插入图片描述

二是一个内部节点可以定位更多的叶子节点。叶子节点之间通过指针来连接,范围扫描将十分简单,而对于B树来说,则需要在叶子节点和内部节点不停的往返移动。

B+树的内节点存的是索引列的数据和下一层节点的地址,叶子结点存的是索引列的数据和该列数据对应的rowId

B树的所有节点存的都是索引列的数据和该列数据对应的rowId

猜你喜欢

转载自blog.csdn.net/GBS20200720/article/details/127765956