Docs 菜单

Docs 主页开发应用程序MongoDB Manual

dbStats

在此页面上

  • 定义
  • 行为
  • 输出
  • 举例
dbStats

dbStats命令返回给定数据库的存储统计信息。该命令的语法如下:

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

dbStats命令采用以下字段:

字段
说明
dbStats
1

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

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

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

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

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

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

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

mongod使用 Wired Tiger 存储引擎非正常关闭 后,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

分配给数据库中所有collection用于存储文档的空间总和,包括可用空间。

storageSize当您删除或缩小文档时, 不会减少。对于使用启用了dataSize 压缩 的 WiredTiger 存储引擎的数据库,此值可能小于 。

storageSize不包括分配给索引的空间。有关索引的总大小,请参阅indexSize

dbStats.freeStorageSize

为数据库中的所有集合分配用于存储文档的可用空间总和。这是分配给索引的可用数据库存储空间,而不包含数据。

freeStorageSize不包括分配给索引的可用空间。请参阅indexFreeStorageSize以了解可用索引的总大小。

要在dbStats输出中包含该值,请将freeStorage设置为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.0.6 中更新。

dbStats.scaleFactor

scale 值(为该命令所用)。

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

4.2 版本中的新增功能

dbStats.fsUsedSize

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

版本 3.6 中的新增功能

提示

另请参阅:

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字段,可以收集和显示突出显示的指标。

比例字段将显示的值设置为千字节。

← dbHash