【问题标题】:How to calculate the future database size in Mongo?如何在 Mongo 中计算未来的数据库大小?
【发布时间】:2011-12-23 15:22:57
【问题描述】:

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

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

我们知道的事情:

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

使用 sizetotalIndexSize 我们可以只计算集合的总大小,但这里的大问题是:

  • 为什么集合大小和存储大小有区别???

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

【问题讨论】:

    标签: mongodb


    【解决方案1】:

    MongoDB 会稍微填充文档,这样它们就可以增长一点,而不必移动到磁盘上集合的末尾(一个昂贵的操作)。

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

    你可以在 mongod 上抛出一个 --noprealloc 标志来防止这种情况发生。

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

    关于您关于计算 5 年后磁盘空间的问题,如果您可以计算出数据增长的方程式,请对您的平均文档大小以及索引的数量/种类做出一些假设你会有的,你也许能想出一些东西。

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

    【讨论】:

    • 感谢您的快速回复 Tyler,在我的情况下,这家银行的钱很贵 :(。我只是想清楚如何计算 storageSize。我读到了 --noprealloc 但它不应该用于生产服务器
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2017-02-06
    • 1970-01-01
    • 2020-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多