Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB占用了太多空间?_Mongodb - Fatal编程技术网

MongoDB占用了太多空间?

MongoDB占用了太多空间?,mongodb,Mongodb,我最近一直在使用mongodb,我发现它占用了很多空间 例如,在其db目录/var/lib/mongodb/中,如果我键入“du-sh”,则结果是417M。问题是数据库中只有很少的条目,我不知道这会占用400米的空间。这正常吗?还是我做错了什么?数据库通常会自动扩展空间,但不再需要时不会返回空间。这可能发生在测试或运行查询期间。同样,如果您使用map reduce创建了索引或聚合,则它们需要放在“您的”数据旁边 必须手动运行专用工具以回收空间。签出功能 运行它,查看清理后仍有多少文件被使用。如果

我最近一直在使用mongodb,我发现它占用了很多空间


例如,在其db目录/var/lib/mongodb/中,如果我键入“du-sh”,则结果是417M。问题是数据库中只有很少的条目,我不知道这会占用400米的空间。这正常吗?还是我做错了什么?

数据库通常会自动扩展空间,但不再需要时不会返回空间。这可能发生在测试或运行查询期间。同样,如果您使用map reduce创建了索引或聚合,则它们需要放在“您的”数据旁边

必须手动运行专用工具以回收空间。签出功能


运行它,查看清理后仍有多少文件被使用。

如果空间有问题,您可以使用一些选项启动,这样文件就不会预分配得比数据大。这将降低性能,因为这样数据在磁盘上就不连续,在插入/更新数据时需要分配。通常,当数据被删除时,空间不会被释放到文件系统,但分配的文件中的空间将被mongodb重用


有关更多信息,请参阅本页:

还是因为它是基于文档的存储?是的,MongoDB是文档存储,因此它还存储文档密钥。Peter建议运行
repair
的建议是正确的。我对我所有的dbs(我只有2个)使用了该命令,但我仍然得到了417M。分布是admin.0文件占用64MB,admin.1占用128MB,admin.ns占用16MB,另一个db占用相同的空间量。我猜(128+68+16)MB是mongodb高效运行所需的最小空间,即使我在每个db中没有很多集合或条目。我在我的机器上检查了一下,我有几个mongodb,我发现indeen 64+128+16Mb。我还看到有人要求将此设置为可配置的,但似乎没有高优先级。