1. 减少IO次数

    B+树的非叶子节点只存储Key值,因此一个节点可以存储更多的Key。 盘块所能容纳的key数量也越多。一次性读内存中的需要查找的key值也就越多。相对来说IO读写次数也就降低了。(树更加矮胖)

    1. 查询更加稳定

    对于B+树的查询,每次都要经历从根节点到中间节点再到叶子节点的过程,因此每次查询的路径长度相同(时间复杂度相同)。而B树其分支节点上也保存有数据,对于每一个数据的查询所走的路径长度是不一样的,所以查询效率也不一样。

    1. 遍历效率更高且天然排序

    B+树遍历整棵树只需要遍历所有的叶子节点即可,而不需要像B树一样需要对每一层进行遍历,这有利于数据库做全表扫描。

    B树相对于B+树的优点是,如果经常访问的数据离根节点很近,而B树非叶子节点本身存有关键字其数据的地址,所以这种数据检索的时候会要比B+树快。