MongoDb:避免过多的磁盘空间

时间:2011-08-22 12:51:49

标签: mongodb

我有一个已经分配了85GB空间的数据库。我使用show dbs命令获得了这个大小。 但是当我使用db.stats()时,我的存储大小为63GB。在浏览完文档后,我发现dat mongo db为创建的db分配了一个大小,然后填充了实际数据。

为什么mongo会做这个预分配,有没有办法可以避免这种预分配?

如果是,那么这样做是否是一个好主意,或者从性能的角度来看是否会产生影响?

感谢!!!

2 个答案:

答案 0 :(得分:4)

详情请见:http://www.mongodb.org/display/DOCS/Excessive+Disk+Space

现在你的情况。我认为数据文件的当前大小不能仅由预分配引起。分配的数据文件的最大大小为2G。也许你曾经存储过比今天更多的数据?上面的链接还显示了如果您确定不会很快就需要它来回收这些数据。这将在此过程中需要大量磁盘空间,因此您必须对此进行一些规划。

禁用预分配确实会产生性能影响。当您执行许多插入操作时,该过程通常需要等待创建新文件。

答案 1 :(得分:0)

您可以使用--noprealloc command line parameter禁用预分配。


您可以阅读更多here