在MongoDB中删除索引时是否回收了空间?

时间:2015-02-18 14:10:59

标签: mongodb indexing

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

1 个答案:

答案 0 :(得分:2)

不,删除收集数据或索引后,MongoDB不会自动释放磁盘空间。与高性能数据库中的其他功能相比,分配新文件相对较慢,因此MongoDB会保留所有先前分配的文件,并且可以按设计使用。

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

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