美文网首页我爱编程
B-和B+树的区别及数据库索引应用

B-和B+树的区别及数据库索引应用

作者: totohui | 来源:发表于2018-05-10 13:12 被阅读0次

1.B+树的非叶子节点不存储数据,所有data存储在叶子节点,导致查询查询时间复杂度为log;而B-树的查询时间复杂度不固定,与关键字在树中的位置有关,最好为O(1)

2.B+树的节点两两相连可大大增加区间访问性,可使用范围查询等;而B-树每个节点关键字和data在一起,无法区间查找

3.B+树更适合外部存储,由于内节点无data域,每个节点能索引的范围更大更精确

为什么MongoDB索引选择B-树,而MySQL(InnoDB)索引选择B+树

MongoDB 是文档型的数据库,是一种 NoSQL,一般使用 XML 或 Json 格式来保存数据,归属于聚合型数据库。被设计用在数据模型简单,性能要求高的场合。尽可能少的磁盘 IO 是提高性能的有效手段。MongoDB 是聚合型数据库,而 B-树恰好关键字和 data 域聚合在一起。

Mysql 是一种关系型数据库,区间访问是常见的一种情况,而 B-树并不支持区间访问,B+树由于数据全部存储在叶子节点,并且通过指针串在一起,这样就很容易的进行区间遍历甚至全部遍历,且每个节点能索引的范围更大更精确。

相关文章

网友评论

    本文标题:B-和B+树的区别及数据库索引应用

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