删除MongoDB处的索引是否回收space?

Is space reclaimed when I delete an index at MongoDB?

我查看了整个文档,但无法弄清楚这是否真的发生了。如果我从 MongoDB 中的集合中删除索引,它会立即删除索引文件吗? space回收了吗?

不,MongoDB不会在删除集合数据或索引后自动释放磁盘空间。与高性能数据库中的其他函数相比,分配新文件是一件相对较慢的事情,因此 MongoDB 按照设计保持所有先前分配的文件打开和可用。

如果您需要回收磁盘空间,请使用 repairDatabase command 实现压缩作为其 checking/fixing 功能的副作用。

使用副本集时可用的替代方法是添加新成员并让它同步 - 数据将相当紧凑地插入副本集成员的新数据库范围文件中。要压缩所有成员,您将以滚动方式进行,并且可能会强制主要成员在最后退出,以便它也可以重新同步。