红黑树与b+树区别,红黑树解决什么问题

首页 > 经验 > 作者:YD1662022-11-14 14:55:20

B树(B-Tree:多路平衡树)

二叉树,BST,AVL,红黑树这几种数据结构适用于一次性将所有数据全部加载的场景,并且会随着结点的数量的增加,树的深度也会变得很深,树越深查找效率也就会越低。并且对于Mysql这种将数据存储在磁盘上的场景来说,树的深度代表着磁盘的IO次数,对应也就需要更多的时间消耗。所以这几种数据结构并不适合用在Mysql这种类型的数据库应用场景上。

B树的特点(M阶,M>2):

每个结点可以有多个关键字和多个子结点;

每个结点最多允许有M个子树;

非叶子结点的关键字数量为[ceil(M/2),M-1];

B树的特点允许一个结点上保存多个关键字,这样可以结合磁盘的存储特点,B树中的一个结点对应一个磁盘块,可以使得B树的整体高度降低,数据的查找效率变得更高。

红黑树与b+树区别,红黑树解决什么问题(9)

B 树(B Tree)

B+树使得树的高度进一步降低,数据查询效率也比B树进一步提高。主要是进行了一下几个部分的修改:

1. (M阶)非叶子结点允许有最多M个子树和最多M个关键字;

2. 非叶子结点中只包含关键字和指向孩子结点的指针(允许结点中存放更多的关键字);

3. 非叶子结点中的关键字会出现在孩子结点结点中(在孩子结点的起始位置:满足有序性);

4. 数据只保存在叶子结点上,并且叶子之间使用双向链表链接(允许范围查找);

红黑树与b+树区别,红黑树解决什么问题(10)

上一页123末页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.