mongodb - 为什么不用B+-Tree MongoDB

标签 mongodb geospatial b-tree spatial-index

有谁知道为什么 MongoDB 使用 B-Tree 而不是 B+-Tree?

据我所知,大多数 DBMS 使用 B+-Tree。 MongoDB 使用 B-Tree 有什么特殊原因吗?

谢谢。

最佳答案

这个问题让我学B/B+的时候很困惑,现在我得到了一些答案:

  1. mysql 是关系数据库,而 mongo 不是。这意味着我们在mysql中做更多的范围操作(比如select * from xx where id > 23)。所以B+树的优势并不明显。
  2. B 树的最佳搜索时间是 O(1),而 B+ 总是 O(log n)。所以当搜索一些“热门”数据时。 B树有更好的性能。(但是,如果使用B树时总是在叶子中搜索数据,则需要更多的磁盘IO时间,因此可能性能不佳。)

在我看来,这取决于mongo如何实现的细节。但我不是Mongo开发人员。 :D

关于mongodb - 为什么不用B+-Tree MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15768409/

相关文章:

data-structures - B 树减少了多少磁盘访问?

indexing - couchdb 如何检索所有以前的修订版?

java - @Qualifier 的问题

routing - 评估 OpenStreetMap 的国际路线

mongodb - max_df 对应的文档比 Ridge 分类器中的 min_df 错误

django - order_by ('-distance' )未按预期工作

c# - 持久(基于磁盘)R 树(或 R* 树)

algorithm - 为什么 B-Tree 用于文件系统?

mongodb - 如何配置 Crafter CMS 社交/个人资料 mongo db 连接属性?

c# - 通过界面投影