文档菜单
文档首页
/
MongoDB 手册
/ / /

dbStats

在本页

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

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

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

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

重要

此命令在M0、M2和M5集群中支持有限。有关更多信息,请参阅不受支持的命令。

  • MongoDB企业版:MongoDB的基于订阅的自托管版本

  • MongoDB社区版:MongoDB的开源、免费使用和自托管版本

命令具有以下语法

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

命令包含以下字段

字段
描述
1

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

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

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

可选。要返回有关分配给集合的空闲空间的详细信息,将freeStorage设置为1。

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

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

运行命令所需的时间取决于数据库的总大小。因为命令必须接触所有数据文件,所以命令可能需要几秒钟才能运行。

在使用Wired Tiger存储引擎的不干净关闭后mongod计数和大小dbStats报告的统计信息可能不准确。

漂移的量取决于自上次检查点和未清理的关闭之间执行的插入、更新或删除操作的数量。检查点通常每60秒发生一次。然而,使用非默认--syncdelay设置的mongod实例可能会有更频繁或更少的检查点。

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

缩放 字段设置为以千字节显示值。

返回

dbHash