B-树、B+树原理及区别

B树又称为B-树、B_树,B+树是B-树的变体。

B+树相对于B-树最大的特点是:查询性能更高

原因:

也是B+树和B-树结构上的区别:

B-树的元素分布在中间节点和叶子节点上。B+树的所有元素都在同一层叶子节点上,且每一个叶子节点都有指向下一个节点的指针,形成有序链表。

  1.1.在查询单行的时候,B-树性能不稳定,可能第一层就是,可能到最底层;而B+树是稳定的IO次数,因为必定要查到叶子节点上,中间全是索引

  1.2.在范围查询的时候(比如查3~11),B-树就很麻烦了,要通过中序遍历;而B+树直接查最后一层的叶子节点就可以了。可以看下面两个图:

 

 

 

 参考: https://blog.csdn.net/qq_35571554/article/details/82759668

 

另外:B+树由于中间节点没有存行数据,所以占用内存更小,再进行IO时,一次性读到内存中的节点更多,变相的减少了IO次数,所以也提升了IO性能

posted @ 2020-07-30 09:42  绿色森林  阅读(1108)  评论(0编辑  收藏  举报