MongoDB中的filesize和datasize是什么意思?

8
我几天前开始使用MongoDB,但我在理解一些数据库架构方面有问题。如果我执行查询db.stats();,我会得到filesize、datasize、storagesize和indexsize。在浏览时,我找到了以下内容:
存储大小=数据大小+分配给集合的可用空间
datasize=MongoDB占用的数据库大小
在这里,我无法理解filesize和datasize的表示方式。对于datasize-->是否也包括了indexsize?请为指定的属性提供精确的解决方案,并请纠正我是否有任何错误。
提前感谢,
3个回答

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

2
此篇文章所述,关于应该监视的不同MongoDB性能指标(使用MMAPv1),以下是dbStats返回的所有存储大小指标:
  • dataSize测量数据库中所有文档和填充所占用的空间。由于填充,如果删除文档但未在更新后缩小或变大,则dataSize会减少-这些操作只是向文档的填充添加或借用。
  • indexSize返回在数据库上创建的所有索引的大小。
  • storageSize测量数据库中所有数据扩展的大小。使用MMAPv1时,它始终大于或等于dataSize,因为扩展包含未使用或已被删除和移动文档释放的自由空间。当文档缩小或移动时,storageSize不受影响。
  • fileSize对应于数据文件的大小。它显然总是大于storageSize,可以看作是数据库在磁盘上的存储占用。仅在删除数据库时才会减小,并且不会受到删除集合、文档或索引的影响。
以下是dbStats返回的不同重要存储指标的图表: dbStats storage metrics for MongoDB 注意:使用MMAPv1存储引擎,MongoDB会在磁盘上为文档预先分配额外的空间,以便进行高效的原地更新,因为文档有空间可以增长而无需重新定位。此额外的空间称为填充。

1
我知道这是一个比较旧的问题,但我想为那些寻找类似信息(就像我一样)的人提供db.stats()的官方文档链接。

数据库统计参考 :: 字段


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接