B树和B+树的意义:增加树的阶数,来减少查找的时间复杂度。便于数据量庞大的数据存储和查找。
B树
性质:
1.每个节点最多有m个分支,m为阶数。最少分支要看根节点,根节点且不是叶子节点至少有两个分支。非根非叶子节点至少有m/2(向上取整)个分支。
2.每n个分支的节点有n-1个关键字,关键字按照递增排序
3.节点内的关键字互不相等
4.叶子节点在同一层
B+树
性质:
1.具有n个关键字的节点有n个分支,而在B树中是有n+1个分支的
2.每个节点(除根节点外)的关键字个数n取值范围为m/2(向上取整)<=n<=m,根节点的取值范围为2<=n<=m,而B树它们分别是m/2(向上取整)-1<=n<=m-1
3.叶子节点中包含了全部关键字的信息,叶子节点引出来的指针指向记录。
4.B+树种所有的非叶子节点仅仅起到一个索引的作用,没有包含关键字对于记录的地址信息。而B树中每个关键字对应了一个记录的地址信息。
5.在B+树上有一个指针指向关键字最小的一个叶子节点,使得整个B+树链接成一个线性链表。便于范围查找。而B树没有,范围查找困难。
查找数据方面,B+树相比于B树减少了磁盘I/O的次数,查询效率更加的稳定,更加适合范围查找。