【问题标题】:What is meant by filesize and datasize in MongoDB?MongoDB中的文件大小和数据大小是什么意思?
【发布时间】:2011-12-09 14:08:04
【问题描述】:

我几天前开始使用 MongoDB,但我在理解一些数据库架构方面遇到了问题。如果我执行查询 db.stats();我有文件大小、数据大小、存储大小和索引大小。当我上网时,我发现了以下内容:

存储大小 = 数据大小 + 为收集分配的可用空间

datasize = MongoDB 使用的数据库大小

在这里,我无法理解文件大小和数据大小表示的表示。对于 datasize --> indexsize 也包括在内?请为指定的属性提供一个精确的解决方案,如果我提到任何错误,请纠正我。

提前谢谢,

【问题讨论】:

    标签: mongodb


    【解决方案1】:
    • dataSize : 数据库使用的所有实际数据(BSON 对象)的总和,以字节为单位
    • indexSize : 数据库使用的所有索引的总和,以字节为单位
    • storageSize : dataSize 加上所有预分配的收集空间,以字节为单位
    • fileSize : 为该数据库分配的所有文件大小的总和(例如 test.0 + test.1 等),以字节为单位
    • nsSizeMB :此数据库的命名空间文件的大小,以兆字节为单位。
    • avgObjSize :数据库中文档对象的平均大小。此值包括填充,因此在您减小文档大小时可能不会改变。

    【讨论】:

      【解决方案2】:

      正如this post 中解释的关于您应该监控的不同 MongoDB 性能指标(使用 MMAPv1),以下是您应该跟踪的 dbStats 返回的所有存储大小指标:

      • dataSize 测量数据库中所有文档和填充占用的空间。由于存在填充,dataSize 会在文档被删除时减少,但在更新后它们缩小或变大时不会减少 - 这些操作只是添加到文档的填充或从文档的填充中借用。
      • indexSize 返回在数据库上创建的所有索引的大小。
      • storageSize 测量数据库中所有数据范围的大小。 对于 MMAPv1,它始终大于或等于 dataSize,因为范围包含尚未被删除和移动的文档使用或释放​​的可用空间。 storageSize 在文档缩小或移动时不受影响。
      • fileSize 对应于您的数据文件的大小。它显然总是比storageSize 大,可以看作是你的数据库在磁盘上的存储空间。仅当您删除数据库时它才会减少,并且在删除集合、文档或索引时不受影响。

      这是一个图表,其中包含 dbStats 返回的不同重要存储指标: 注意:使用 MMAPv1 存储引擎,MongoDB 将磁盘上的额外空间预先分配给文档,因此可以进行有效的就地更新,因为文档有增长空间而无需重新定位。这个额外的空间称为padding

      【讨论】:

        【解决方案3】:

        我意识到这是一个较老的问题,但我想我会链接到db.stats() 的官方文档,以供其他人寻找类似信息(就像我一样)。

        Database Statistics Reference :: Fields

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-07-01
          • 2015-03-18
          • 1970-01-01
          • 2015-12-15
          • 2020-05-03
          • 1970-01-01
          • 1970-01-01
          • 2018-12-26
          相关资源
          最近更新 更多