如何在新字段上手动创建空的MongoDB索引



我收集了大量数据,超过2TiB。在发布新功能的过程中,我添加了一个新字段的索引,100%肯定在任何文档中都不存在,MongoDB仍然会对这个字段进行全面扫描,这可能需要很长一段时间。

有没有黑客可以手动创建一个结构有效的空索引文件,并通知MongoDB节点,这样当索引被修改时,它就会将索引加载到内存中,以及MongoDB正在做的其他事情?

与关系型RDBMS不同,MongoDB也在不存在的字段上创建索引,即扫描整个集合。

索引创建是在后台运行的,所以应该不会造成太大的危害。

请参阅createIndexes

在版本4.2中更改。

对于功能兼容性版本(fcv(";4.2〃;,所有索引构建都使用一个优化的构建过程,该过程仅在构建过程的开始和结束时持有独占锁。构建过程的其余部分将产生交错的读写操作。如果指定,MongoDB将忽略后台选项。

如果运行MongoDB 4.2或更早版本,则可以指定选项{ background: true }

最新更新