db.stats()
说明
db.stats(scale)
返回反映单个数据库使用状态的统计信息。
db.stats()
方法是dbStats
数据库命令的包装器。
兼容性
此方法可用于以下环境中托管的部署:
MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
重要
此命令在 M 0 、 M 2和 M 5集群中提供有限支持。 有关更多信息,请参阅不支持的命令。
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
参数
db.stats()
方法具有以下可选参数:
Parameter | 类型 | 说明 |
---|---|---|
数字 | 可选。各种大小数据的比例因子。 如果指定了非整数比例因子,MongoDB 将使用该因子的整数部分。例如,如果指定比例因子为 从版本 4.2 开始,输出包括用于缩放大小值的 | |
数字 | 可选。要返回分配给集合的可用空间信息,请将 如果该实例有大量集合或索引,获取可用空间使用情况数据可能会导致处理延迟。要收集不含可用空间详细信息的 |
输出
db.stats()
方法返回包含数据库系统状态统计信息的文档。包括 freeStorage 详细信息在内的完整列表类似下文内容:
{ 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 }) }
有关输出的解释,请参阅输出。
行为
意外关闭后的准确性
使用 Wired Tiger 存储引擎非正常关闭 mongod
后,db.stats()
报告的计数和大小统计数据可能不准确。
偏差的大小取决于在最后一个检查点和非正常关闭之间执行的插入、更新或删除操作的次数。检查点通常每 60 秒出现一次。但是,如果 mongod
实例使用了非默认的 --syncdelay
设置,则检查点出现的次数可能会增多或减少。
在 mongod
的每个集合上运行 validate
,以在非正常关闭之后恢复统计信息。
非正常关闭后:
副本集节点状态限制
要在副本集成员上运行,dbStats
操作需要成员处于 PRIMARY
或 SECONDARY
状态。如果节点处于其他状态,如 STARTUP2
,则操作错误。
示例
Scale Output Values
要以千字节为单位返回值,请将扩展位数设立为1024
:
db.stats(1024)
注意
该比例因子会将值四舍五入为整数。
返回单一数值
要返回单个值(如 indexSize
),请将字段名附加到 db.stats()
后面。
db.stats().indexSize db.stats(1024).indexSize
输出显示原始值和缩放值的差值。
118784 116
返回有关分配给集合的可用空间的信息
要返回分配给集合的可用空间信息,请将 freeStorage 参数传递给 db.stats()
。
以下示例返回以 KB 为单位的 indexFreeStorageSize
:
db.stats( { freeStorage: 1, scale: 1024 } ).indexFreeStorageSize