有谁知道为什么 MongoDB 使用 B-Tree 而不是 B+-Tree?
据我所知,大多数 DBMS 使用 B+-Tree。MongoDB使用B-Tree有什么特别的原因吗?
谢谢。
有谁知道为什么 MongoDB 使用 B-Tree 而不是 B+-Tree?
据我所知,大多数 DBMS 使用 B+-Tree。MongoDB使用B-Tree有什么特别的原因吗?
谢谢。
当我学习 B/B+ 时,这个问题让我很困惑。现在我得到了一些答案:
select * from xx where id > 23
)。所以B+树的优势并不明显。在我看来,这取决于mongo如何实现的细节。但我不是Mongo开发人员。:D
MongoDB 使用 B+ by WiredTiger 默认存储引擎。
1、https://docs.mongodb.com/manual/core/wiredtiger/
从 MongoDB 3.2 开始,WiredTiger 存储引擎是默认存储引擎。
2、http://source.wiredtiger.com/3.2.1/tune_page_size_and_comp.html
WiredTiger 使用称为 B-Tree(具体为 B+ 树)的数据结构在内存中维护表的数据,将 B-Tree 的节点称为页。内部页面只携带密钥。叶页存储键和值。
据我所知,MongoDB 将索引存储为存储数据的同一文件的一部分。所以B树更好!B+ 树只在叶子中存储数据。