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性能