当前位置:   article > 正文

B树和B+树区别及适用场景_b树和b+树的区别,二者适用于什么样的索引场景

b树和b+树的区别,二者适用于什么样的索引场景

B树和B+树相比,有两个最核心的区别:

1、B树没有内部节点和叶子结点的区分,它的每个节点都是即存了key又存了data。

2、由于没有内部节点和叶子结点的区分,使得B树没有将叶子结点用链表串联起来的结构。

 

这两个区别给B树带来了两个检索的特点:

1、进行单个key查询时,B树最快可以在O(1)的时间代价内就查到。而从平均时间代价来看,会比B+树稍快一些。但波动会比较大,因为每个节点既存key又存data会使得树变高,底层的节点的IO次数就会变多。

2、进行范围查询时,由于缺乏叶子结点的连接,因此只能通过树的遍历来完成范围查询,这会涉及多个节点的IO问题,效率不如B+树。

 

因此,存在大量范围查询的场景,适合使用B+树(比如数据库);

而对大量单个key查询的场景,可以考虑B树(比如NOSQL的MongoDB)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/382548
推荐阅读
相关标签
  

闽ICP备14008679号