Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

dbStats

在此页面上

  • 定义
  • 兼容性
  • 语法
  • 命令字段
  • 行为
  • 输出
  • 示例
dbStats

dbStats 命令可返回给定数据库的存储统计信息。

此命令可用于以下环境中托管的部署:

  • MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务

重要

此命令在 M 0 、 M 2和 M 5集群中提供有限支持。 有关更多信息,请参阅不支持的命令。

  • MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本

  • MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本

该命令具有以下语法:

db.runCommand(
{
dbStats: 1,
scale: <number>,
freeStorage: 0
}
)

该命令接受以下字段:

字段
说明
1

可选。各种大小数据的比例因子。scale 默认为 1,以字节为单位返回大小数据。要显示千字节而不是字节,请指定 1024scale 值。

如果指定了非整数比例因子,MongoDB 将使用该因子的整数部分。例如,如果指定比例因子为 1023.999,MongoDB 将使用 1023 作为比例因子。

从版本 4.2 开始,输出包括用于缩放大小值的 scaleFactor

可选。要返回分配给集合的可用空间信息,请将 freeStorage 设置为 1。

如果实例有大量集合或索引,获取可用空间使用情况数据可能会导致处理延迟。如要收集不含可用空间详情的 dbStats 信息,请将 freeStorage 设为 0 或去除该字段。

mongosh 中,db.stats() 函数提供了有关 dbStats 的包装器。

运行该命令所需的时间取决于数据库的总大小。由于该命令必须访问所有数据文件,因此,该命令可能需要几秒钟时间才能运行。

使用 Wired Tiger 存储引擎非正常关闭 mongod 后,dbStats 报告的计数和大小统计数据可能不准确。

偏差的大小取决于在最后一个检查点和非正常关闭之间执行的插入、更新或删除操作的次数。检查点通常每 60 秒出现一次。但是,如果 mongod 实例使用了非默认的 --syncdelay 设置,则检查点出现的次数可能会增多或减少。

mongod 的每个集合上运行 validate,以在非正常关闭之后恢复统计信息。

非正常关闭后:

若要在副本集节点上运行,dbStats 操作要求该节点处于 PRIMARYSECONDARY 状态。如果该节点处于其他状态,如 STARTUP2,则操作错误。

dbStats.db

数据库名称。

dbStats.collections

数据库中的集合数量。

dbStats.views

数据库中视图的数量。

dbStats.objects

数据库中所有集合的对象(特别是文档)的数量。

dbStats.avgObjSize

每个文档的平均大小(以字节为单位)。即 dataSize 除以文档数量。缩放参数不会影响 avgObjSize 值。

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.indexes

数据库中所有集合的索引总数。

dbStats.indexSize

分配给数据库中所有索引的磁盘空间总和,包括可用索引空间。

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

为数据库中所有集合内的文档和索引分配的磁盘空间总和。包括已用存储空间和可用存储空间。它是 storageSizeindexSize 的总和。

dbStats.totalFreeStorageSize

为数据库中所有集合内的文档和索引分配的可用存储空间总和。它是 freeStorageSizeindexFreeStorageSize 的总和。

如要在 dbStats 输出中包含该值,请将 freeStorage 设置为 1。

在版本 5.3.0、5.2.1 和 5.0.6 中更新。

dbStats.scaleFactor

scale 值(为该命令所用)。

如果指定了非整数比例因子,MongoDB 将使用该因子的整数部分。例如,如果指定比例因子为 1023.999,MongoDB 将使用 1023 作为比例因子。

dbStats.fsUsedSize

MongoDB 存储数据的文件系统中使用的所有磁盘空间的总大小。

提示

另请参阅:

dbStats.fsTotalSize

MongoDB 存储数据的文件系统上所有磁盘容量的总大小。

以下示例演示了 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 字段,将能够收集和显示突出显示的指标。

scale 字段将显示的值设置为千字节 (KB)。

后退

dbHash