首先,B树不管叶子节点还是非叶子节点,都会保存数据,这样导致在非叶子节点中能保存的指针数量变少,我们知道,一个节点索引是16K嘛,固定大小的情况下要保存相同的数据量,只能增加树的高度,导致IO操作变多,查询性能变低。 还有就是B+树的查询效率更加稳定,因为任何关键字的查找都必须从根节点走到叶子节点。还有B+树更便于遍历与范围查询,因为B+树的每个叶子节点都有一个next属性指向下一个节点,这样的话要做遍历查找或者范围查询就很容易,如果是B树的话,那就得进行中序遍历来扫描。