为什么MongoDB用B树,而MySQL用B+树?

网上搜索「MongoDB B+树」出来的结果满篇都是「为什么MongoDB索引用B-树而MySQL索引用B+树」,但看了很多篇文章都感觉前后逻辑不严密,有点强答的感觉,于是去翻了下官方文档,发现MongoDB用的也是B + ^+ +

官方文档

WiredTiger maintains a table’s data in memory using a data structure called a B-Tree ( B+ Tree to be specific), referring to the nodes of a B-Tree as pages. Internal pages carry only keys. The leaf pages store both keys and values.
WiredTiger 使用称为B-Tree(具体为B+ Tree )的数据结构在内存中维护表的数据,将B-Tree的节点称为页,内页只携带键,叶页存储键和值。

B-Tree

维基百科:B+树属于B-Tree的变体
常见关系型数据库默认索引结构均为B + ^+ +树(具体见各种数据库索引的数据结构

B-Tree中文翻译是「B树」而非「B减树」

  • 狭义B-Tree:我们通常所说的B树
  • 广义B-Tree:包括 B + ^+ +树、B ∗ ^* 树、B ∗ + ^{*+} +

很多英文文档和论文里说的B-Tree都是广义B-Tree,一般看到B-Tree建议联系上下文描述判断它到底指「狭义B树」还是「广义B-Tree」

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值