MongoDB中的文件大小和数据大小是什么意思?

时间:2011-12-09 14:08:04

标签: mongodb

几天前我开始使用MongoDB,我在理解某些数据库架构时遇到了问题。如果我执行查询db.stats();我有文件大小,datasize,storagesize& indexsize。我在冲浪时发现了以下内容:

Storagesize = datasize +为集合分配的可用空间

datasize = MongoDB使用的数据库大小

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

提前谢谢,

3 个答案:

答案 0 :(得分:17)

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

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:1)

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

Database Statistics Reference :: Fields