如何计算Mongo中未来的数据库大小?

时间:2011-12-23 15:22:58

标签: mongodb

我正在使用MongoDB,我们对这个数据库非常满​​意。但最近我们的客户向我们询问了未来的数据库大小。

我们知道如何在典型的关系数据库中计算这一点,但我们在使用此No-SQL数据库的生产方面没有长期经验。

我们知道的事情:

  • db.namecollections.stats()为我们提供重要信息,例如,size(文档),avgObjSize(文档),storageSize,totalIndexSize (更多here

使用大小 totalIndexSize ,我们只能计算集合的总大小,但最重要的问题是:

  • 为什么收藏尺寸和storageSize之间有区别?

如何计算这一点,考虑未来的数据库大小?

1 个答案:

答案 0 :(得分:6)

MongoDB对文档进行了一些填充,以便它们可以增长一点而不必移动到磁盘上的集合末尾(这是一项昂贵的操作)。

此外,mongo通过创建下一个数据文件并在需要提高速度之前用零填充数据文件来预先分配数据文件。

你可以在mongod上抛出一个--noprealloc标志,以防止它被破坏。

如果您想了解更多信息,可以查看here

关于5年前计算磁盘空间的问题,如果你能找出数据增长的等式,可以假设你的平均文档大小是多少,以及索引的数量/类型你会有,你或许可以想出一些东西。

也曾在银行工作过,我的建议是提出一个疯狂的上限,然后将其翻两番。银行里的钱很便宜,计算错误也不是。