我有一个包含 1000 万个文档的集合,每个文档都有四个简单的文本字段。Mongo 第一次在字段上建立索引大约需要 5 分钟(即,当我从 Mongo shell 运行 ensureIndex 命令时)。
我知道 Mongo 索引是在内存中维护的 B 树数据结构。但是当我关闭并重新启动 mongod 时,索引会立即生效(即)在服务器启动后立即运行的查询会使用索引。
想知道:
1.这些索引何时与磁盘上的文件同步?
2. 如果mongod重启,这些索引什么时候会被加载回内存中?
Mongo 在以下两个阶段构建索引(可以在 mongod log 中观察到这一点)。任何想法在每个阶段都做了什么。
1. 外部排序进度
2. Btree 自底向上进度