美文网首页
B树和B+树

B树和B+树

作者: 陈陈chen | 来源:发表于2021-10-13 13:29 被阅读0次

    B树可以理解为二叉搜索树,只不过二叉搜索树每个节点只有一个数字,B数有多个数字。

    B树:

    image.png

    B+树:

    image.png

    B树与B+树的区别

    • B树每个节点都存储数据,所有节点组成这棵树。B+树只有叶子节点存储数据(B+数中有两个头指针:一个指向根节点,另一个指向关键字最小的叶节点),叶子节点包含了这棵树的所有数据,所有的叶子结点使用链表相连,便于区间查找和遍历,所有非叶节点起到索引作用。

    • B树中叶节点包含的关键字和其他节点包含的关键字是不重复的,B+树的索引项只包含对应子树的最大关键字和指向该子树的指针,不含有该关键字对应记录的存储地址。

    • B树中每个节点(非根节点)关键字个数的范围为m/2(向上取整)-1,m-1,并且具有n个关键字的节点包含(n+1)棵子树。B+树中每个节点(非根节点)关键字个数的范围为m/2(向上取整),m,具有n个关键字的节点包含(n)棵子树。

    • B+树中查找,无论查找是否成功,每次都是一条从根节点到叶节点的路径。

    B树的优点:

    1.B树的每一个节点都包含key和value,因此经常访问的元素可能离根节点更近,因此访问也更迅速。

    B+树的优点:

    • 所有的叶子结点使用链表相连,便于区间查找和遍历。B树则需要进行每一层的递归遍历。相邻的元素可能在内存中不相邻,所以缓存命中性没有B+树好。
    • b+树的中间节点不保存数据,能容纳更多节点元素。

    相关文章

      网友评论

          本文标题:B树和B+树

          本文链接:https://www.haomeiwen.com/subject/yagsoltx.html