我对MongoDB的收藏大小有疑问。 我做了一个小的压力测试,我的MongoDB服务器不断插入,删除和更新数据大约48小时。这些文件只是小尺寸,只是一个数值,一个时间戳和一个ID。
现在,在这48小时之后,用于插入,删除和更新数据的集合是98.000字节,预分配的存储大小是696.320字节。由于插入阶段的一个输入尖峰,它已经变得比实际的集合大小高得多。由于以下对象的删除,实际的收集大小再次减少,预分配的存储大小没有(AFAIK是一个常见的数据库管理问题,因为它与例如MySQL相同)。
压力测试完成后,我创建了一个MongoDB数据库的转储并完全删除了数据库,因此我可以再次导入转储,然后查看统计数据的外观。而且我怀疑,收集大小仍然相同(98.000字节),但预分配的存储大小下降到40.960字节(从之前的696.320字节)。
由于我们想要为每天产生数百MB数据并因此产生I / O流量的应用程序试用MongoDB,我们需要将数据库及其占用空间保持在最低限度。最好不必创建转储,删除整个数据库并不时地再次导入转储。
现在我的问题是:有没有办法从代码中功能上调用MongoDB垃圾收集器?它背后的软件是一个Java软件,我的想法是在一定的时间/操作之后或在预分配的存储大小达到某个阈值之后调用垃圾收集器。 或者可能有更好(更优雅)的方式来最小化占用的空间?
任何帮助都将不胜感激,如果需要,我会尝试提供任何进一步的信息。提前谢谢。