1.
m阶B树 --- 节点中的n个关键字对应n+1颗子树
m阶B+树 --- 节点中的n个关键字对应n颗子树
2.
m阶B树:
a: 根节点的关键字数 1<=n <=m-1
b: 其他节点关键字数 [-1,m-1 ]
m阶B+树:
a: 根节点的关键字数 1<=n <=m
b: 其他节点关键字数 [,m ]
3.
在B+树中,叶子节点包含全部关键字,非叶子节点中出现过的关键字也会出现在叶=叶子节点中。
在B树中,各节点中包含的关键字是不重复的。
4.
在B+树中,叶子节点包含信息,所有的非叶子仅起索引作用,像是分块查找,非叶子节点中每个索引项只含有对应子树的最大关键字和指向该子树的指针,不含有该关键字对应记录的存储地址。
B树中的节点都包含了关键字对应的记录的存储地址。
5.本质区别
在B+树中,每查找一层节点时,都需要进行读磁盘的操作,直到找到叶子节点。
在B+树中,非叶子节点不含有该关键字所对应记录的存储地址。可以使得一个磁盘块包含更多个关键字,使得B+树的阶更大,树高更矮,读磁盘次数更少,
在B树中,每次查找都要进行读磁盘操作。因此树的高度越低查找越快。
典型应用,关系型数据库的索引,如MySQL,索引功能就是用B+树实现的。