dbStats
定义
dbStats
的
dbStats
命令返回给定数据库的存储统计信息。
兼容性
此命令在以下环境中托管的部署中可用
MongoDB Atlas:云中MongoDB部署的完全托管服务
重要
此命令在M0、M2和M5集群中支持有限。有关更多信息,请参阅不受支持的命令。
MongoDB企业版:MongoDB的基于订阅的自托管版本
MongoDB社区版:MongoDB的开源、免费使用和自托管版本
语法
命令具有以下语法
db.runCommand( { dbStats: 1, scale: <number>, freeStorage: 0 } )
命令字段
命令包含以下字段
字段 | 描述 |
---|---|
1 | |
可选。各种尺寸数据的比例因子。默认的 如果您指定了非整数的缩放因子,MongoDB将使用指定因子的整数部分。例如,如果您指定缩放因子为 从版本4.2开始,输出包括用于缩放大小值的 | |
可选。要返回有关分配给集合的空闲空间的详细信息,将 如果实例具有大量集合或索引,获取空闲空间使用数据可能会导致处理延迟。要获取不带空闲空间详细信息的 |
在mongosh
中,db.stats()
函数提供了对dbStats
的封装。
行为
运行命令所需的时间取决于数据库的总大小。因为命令必须接触所有数据文件,所以命令可能需要几秒钟才能运行。
意外关闭后的准确性
在使用Wired Tiger存储引擎的不干净关闭后mongod
,计数和大小dbStats
报告的统计信息可能不准确。
漂移的量取决于自上次检查点和未清理的关闭之间执行的插入、更新或删除操作的数量。检查点通常每60秒发生一次。然而,使用非默认--syncdelay
设置的mongod
实例可能会有更频繁或更少的检查点。
在mongod
上的每个集合上运行validate
,以在未清理的关闭后恢复统计信息。
在未清理的关闭后
副本集成员状态限制
要在副本集成员上运行,dbStats
操作需要该成员处于PRIMARY
或SECONDARY
状态。如果成员处于其他状态,例如STARTUP2
,则操作将报错。
输出
dbStats.dataSize
数据库中未压缩数据的总大小。当您删除文档时,
dataSize
会减少。对于使用WiredTiger存储引擎的数据库,如果启用了压缩,则
dataSize
可能大于storageSize
。当文档缩小时,dataSize
会减少。
dbStats.storageSize
数据库中所有集合用于文档存储所分配的磁盘空间总和,包括空闲空间。
删除或缩小文档时,
storageSize
不会减少。对于启用了压缩的WiredTiger存储引擎的数据库,此值可能小于dataSize
。storageSize
不包括分配给索引的空间。有关总索引大小的信息,请参阅indexSize
。
dbStats.freeStorageSize
数据库中所有集合为文档存储分配的空闲空间总和。空闲数据库存储空间已分配给集合,但不包含数据。
freeStorageSize
不包括分配给索引的空闲空间。有关总空闲索引大小的信息,请参阅indexFreeStorageSize
。要将此值包含在
dbStats
输出中,请将freeStorage设置为1。更新于版本5.3.0,5.2.1和5.0.6
dbStats.indexFreeStorageSize
数据库中所有索引分配的空闲磁盘空间的总和。空闲数据库存储空间分配给索引,但不包含数据。
indexFreeStorageSize
不包括分配给文档存储的空闲空间。有关总空闲文档存储大小的信息,请参阅freeStorageSize
。indexFreeStorageSize
不包括正在进行的索引构建。要将此值包含在
dbStats
输出中,请将freeStorage设置为1。在版本 7.0,6.3.2,6.0.7,5.3.0,5.2.1,5.0.19 和 5.0.6 中更新
dbStats.totalSize
数据库中所有集合中为文档和索引分配的磁盘空间总和。包括已用和空闲存储空间。这是
storageSize
和indexSize
的总和。
dbStats.totalFreeStorageSize
数据库中所有集合中为文档和索引分配的空闲存储空间的总和。这是
freeStorageSize
和indexFreeStorageSize
的总和。要将此值包含在
dbStats
输出中,请将freeStorage设置为1。在版本 5.3.0、5.2.1 和 5.0.6 中更新。
示例
以下示例演示了 dbStats
的使用。
限制返回的数据
要限制返回到单个字段的数据,请将字段名附加到 dbStats
命令。此示例返回 indexSize
值
db.runCommand( { dbStats: 1 } ).indexSize
查看分配给集合的空闲空间
要查看空闲存储使用情况,将 freeStorage 设置为 1。
db.runCommand( { dbStats: 1, scale: 1024, freeStorage: 1 } )
示例输出
{ db: 'test', collections: 2, views: 0, objects: 1689, avgObjSize: 52.56542332741267, dataSize: 86.7021484375, storageSize: 100, freeStorageSize: 32, indexes: 2, indexSize: 116, indexFreeStorageSize: 36, totalSize: 216, totalFreeStorageSize: 68, scaleFactor: 1024, fsUsedSize: 60155820, fsTotalSize: 61255492, ok: 1, '$clusterTime': { clusterTime: Timestamp({ t: 1646085664, i: 1 }), signature: { hash: Binary(Buffer.from("0000000000000000000000000000000000000000", "hex"), 0), keyId: Long("0") } }, operationTime: Timestamp({ t: 1646085664, i: 1 }) }
freeStorage 字段启用收集和显示突出显示的指标。
将 缩放 字段设置为以千字节显示值。