collStats
定义
collStats
已弃用自版本6.2.
版本 6.2 及以后使用
$collStats
聚合阶段。collStats
命令返回给定集合的各种存储统计信息。请使用
$collStats
聚合阶段来代替collStats
命令及其mongosh
辅助方法db.collection.stats()
。提示
要运行
collStats
,请使用db.runCommand( { <command> } )
方法。
兼容性
此命令在以下环境中的部署中可用
MongoDB Atlas:云中MongoDB部署的全托管服务
注意
此命令在所有MongoDB Atlas集群中受支持。有关Atlas对所有命令的支持信息,请参阅不受支持的命令。
MongoDB Enterprise:基于订阅的、自我管理的MongoDB版本
MongoDB Community:源代码可用的、免费使用且自我管理的MongoDB版本
语法
命令具有以下语法
db.runCommand( { collStats: <string>, scale: <int> } )
命令字段
命令包含以下字段
字段 | 类型 | 描述 |
---|---|---|
collStats | 字符串 | 目标集合的名称。 |
缩放 | 整数 | 可选。各种大小数据的缩放因子(字段名称中指定了单位大小的情况除外)。默认值为1,以返回字节数据。要显示千字节而不是字节,请指定缩放值为1024。 如果您指定了一个非整数的缩放因子,MongoDB将使用指定因子的整数部分。例如,如果您指定了缩放因子为1023.999,MongoDB将使用1023作为缩放因子。 缩放因子将受影响的尺寸值四舍五入到整数。 |
行为
编辑
当使用可查询加密时,$collStats
输出对加密集合的信息进行编辑
输出省略了
"queryExecStats"
输出省略了
"latencyStats"
如果存在,输出编辑了
"WiredTiger"
,只包含url
字段。
缩放大小
除非指标名称(例如 "当前缓存在中的字节数"
)有其他指定,与大小相关的值以字节为单位显示,并可以被 scale
覆盖。
缩放因子将受影响的尺寸值四舍五入到整数。
意外关闭后的准确性
使用 mongod
和 Wired Tiger 存储引擎进行不干净的关闭后,大小collStats
报告的统计信息可能不准确。
漂移量取决于自上一次检查点和未清理的关机以来所执行的插入、更新或删除操作的数量。检查点通常每60秒发生一次。但是,使用非默认--syncdelay
设置的mongod
实例可能具有更频繁或更少的检查点。
在mongod
上的每个集合上运行validate
,以在未清理的关机后恢复统计信息。
未清理的关机后
正在构建的索引
collStats
包括正在构建的索引的信息。有关详细信息,请参阅
副本集成员状态限制
要在副本集成员上运行,collStats
操作要求成员处于PRIMARY
或SECONDARY
状态。如果成员处于其他状态,例如STARTUP2
,则操作会出错。
不存在的集合
如果您对一个不存在的集合运行collStats
,那么根据您的数据库实现,collStats
可能会在输出字段中返回0
值而不是返回错误。
例如
db.runCommand( { collStats : "nonExistentCollection" } )
字段中值为0
的示例输出
{ ns: 'test.nonExistentCollection', size: 0, count: 0, ... }
示例
以下操作在restaurants
集合上运行collStats
命令,指定缩放为1024
字节
db.runCommand( { collStats : "restaurants", scale: 1024 } )
以下文档提供了collStats
输出的表示。根据您集合的配置和存储引擎,输出字段可能会有所不同。
{ "ns" : <string>, "size" : <number>, "timeseries" : { "bucketsNs" : <bucketName>, "bucketCount" : <number>, "avgBucketSize" : <number>, "numBucketInserts" : <number>, "numBucketUpdates" : <number>, "numBucketsOpenedDueToMetadata" : <number>, "numBucketsClosedDueToCount" : <number>, "numBucketsClosedDueToSize" : <number>, "numBucketsClosedDueToTimeForward" : <number>, "numBucketsClosedDueToTimeBackward" : <number>, "numBucketsClosedDueToMemoryThreshold" : <number>, "numCommits" : <number>, "numWaits" : <number>, "numMeasurementsCommitted" : <number>, "avgNumMeasurementsPerCommit": <number> }, "count" : <number>, "avgObjSize" : <number>, "numOrphanDocs" : <number>, // Available starting in MongoDB 6.0 "storageSize" : <number>, "freeStorageSize" : <number>, "capped" : <boolean>, "max" : <number>, "maxSize" : <number>, "wiredTiger" : { "metadata" : { "formatVersion" : <num> }, "creationString" : <string> "type" : <string>, "uri" : <string>, "LSM" : { "bloom filter false positives" : <number>, "bloom filter hits" : <number>, "bloom filter misses" : <number>, "bloom filter pages evicted from cache" : <number>, "bloom filter pages read into cache" : <number>, "bloom filters in the LSM tree" : <number>, "total size of bloom filters" : <number>, "chunks in the LSM tree" : <number>, "highest merge generation in the LSM tree" : <number>, "queries that could have benefited from a Bloom filter that did not exist" : <number>, "sleep for LSM checkpoint throttle" : <number>, "sleep for LSM merge throttle" : <number> "total size of bloom filters" : <number> }, "block-manager" : { "allocations requiring file extension" : <number>, "blocks allocated" : <number>, "blocks freed" : <number>, "checkpoint size" : <number>, "file allocation unit size" : <number>, "file bytes available for reuse" : <number>, "file magic number" : <number>, "file major version number" : <number>, "file size in bytes" : <number>, "minor version number" : <number> }, "btree" : { "btree checkpoint generation" : <number>, "column-store fixed-size leaf pages" : <number>, "column-store internal pages" : <number>, "column-store variable-size RLE encoded values" : <number>, "column-store variable-size deleted values" : <number>, "column-store variable-size leaf pages" : <number>, "fixed-record size" : <number>, "maximum internal page key size" : <number>, "maximum internal page size" : <number>, "maximum leaf page key size" : <number>, "maximum leaf page size" : <number>, "maximum leaf page value size" : <number>, "maximum tree depth" : <number>, "number of key/value pairs" : <number>, "overflow pages" : <number>, "pages rewritten by compaction" : <number>, "row-store empty values" : <number>, "row-store internal pages" : <number>, "row-store leaf pages" : <number> }, "cache" : { "bytes currently in the cache" : <number>, "bytes dirty in the cache cumulative" : <number>, "bytes read into cache" : <number>, "bytes written from cache" : <number>, "checkpoint blocked page eviction" : <number>, "data source pages selected for eviction unable to be evicted" : <number>, "eviction walk passes of a file" : <number>, "eviction walk target pages histogram - 0-9" : <number>, "eviction walk target pages histogram - 10-31" : <number>, "eviction walk target pages histogram - 128 and higher" : <number>, "eviction walk target pages histogram - 32-63" : <number>, "eviction walk target pages histogram - 64-128" : <number>, "eviction walks abandoned" : <number>, "eviction walks gave up because they restarted their walk twice" : <number>, "eviction walks gave up because they saw too many pages and found no candidates" : <number>, "eviction walks gave up because they saw too many pages and found too few candidates" : <number>, "eviction walks reached end of tree" : <number>, "eviction walks started from root of tree" : <number>, "eviction walks started from saved location in tree" : <number>, "hazard pointer blocked page eviction" : <number>, "in-memory page passed criteria to be split" : <number>, "in-memory page splits" : <number>, "internal pages evicted" : <number>, "internal pages split during eviction" : <number>, "leaf pages split during eviction" : <number>, "modified pages evicted" : <number>, "overflow pages read into cache" : <number>, "page split during eviction deepened the tree" : <number>, "page written requiring cache overflow records" : <number>, "pages read into cache" : <number>, "pages read into cache after truncate" : <number>, "pages read into cache after truncate in prepare state" : <number>, "pages read into cache requiring cache overflow entries" : <number>, "pages requested from the cache" : <number>, "pages seen by eviction walk" : <number>, "pages written from cache" : <number>, "pages written requiring in-memory restoration" : <number>, "tracked dirty bytes in the cache" : <number>, "unmodified pages evicted" : <number> }, "cache_walk" : { "Average difference between current eviction generation when the page was last considered" : <number>, "Average on-disk page image size seen" : <number>, "Average time in cache for pages that have been visited by the eviction server" : <number>, "Average time in cache for pages that have not been visited by the eviction server" : <number>, "Clean pages currently in cache" : <number>, "Current eviction generation" : <number>, "Dirty pages currently in cache" : <number>, "Entries in the root page" : <number>, "Internal pages currently in cache" : <number>, "Leaf pages currently in cache" : <number>, "Maximum difference between current eviction generation when the page was last considered" : <number>, "Maximum page size seen" : <number>, "Minimum on-disk page image size seen" : <number>, "Number of pages never visited by eviction server" : <number>, "On-disk page image sizes smaller than a single allocation unit" : <number>, "Pages created in memory and never written" : <number>, "Pages currently queued for eviction" : <number>, "Pages that could not be queued for eviction" : <number>, "Refs skipped during cache traversal" : <number>, "Size of the root page" : <number>, "Total number of pages currently in cache" : <number> }, "compression" : { "compressed page maximum internal page size prior to compression" : <number>, "compressed page maximum leaf page size prior to compression " : <number>, "compressed pages read" : <number>, "compressed pages written" : <number>, "page written failed to compress" : <number>, "page written was too small to compress" : 1 }, "cursor" : { "bulk loaded cursor insert calls" : <number>, "cache cursors reuse count" : <number>, "close calls that result in cache" : <number>, "create calls" : <number>, "insert calls" : <number>, "insert key and value bytes" : <number>, "modify" : <number>, "modify key and value bytes affected" : <number>, "modify value bytes modified" : <number>, "next calls" : <number>, "open cursor count" : <number>, "operation restarted" : <number>, "prev calls" : <number>, "remove calls" : <number>, "remove key bytes removed" : <number>, "reserve calls" : <number>, "reset calls" : <number>, "search calls" : <number>, "search near calls" : <number>, "truncate calls" : <number>, "update calls" : <number>, "update key and value bytes" : <number>, "update value size change" : <num> }, "reconciliation" : { "dictionary matches" : <number>, "fast-path pages deleted" : <number>, "internal page key bytes discarded using suffix compression" : <number>, "internal page multi-block writes" : <number>, "internal-page overflow keys" : <number>, "leaf page key bytes discarded using prefix compression" : <number>, "leaf page multi-block writes" : <number>, "leaf-page overflow keys" : <number>, "maximum blocks required for a page" : <number>, "overflow values written" : <number>, "page checksum matches" : <number>, "page reconciliation calls" : <number>, "page reconciliation calls for eviction" : <number>, "pages deleted" : <number> }, "session" : { "object compaction" : <number>, }, "transaction" : { "update conflicts" : <number> } }, "nindexes" : <number>, "indexDetails" : { "_id_" : { "metadata" : { "formatVersion" : <number> }, ... }, ... }, "indexBuilds" : [ <string>, ], "totalIndexSize" : <number>, "totalSize" : <number>, "indexSizes" : { "_id_" : <number>, "<indexName>" : <number>, ... }, "scaleFactor" : <number> "ok" : <number> }
输出
collStats.size
集合中所有记录在内存中的未压缩总大小。该
size
不包括与集合关联的任何索引的大小,这些大小由totalIndexSize
字段报告。scale
参数会影响此值。数据压缩不会影响此值。
collStats.timeseries
当在 时间序列集合 上运行
collStats
命令时会出现timeseries
。本文档包含内部诊断使用的数据。
collStats.numOrphanDocs
集合中孤儿文档的数量。
新增版本6.0.
collStats.storageSize
为该集合分配的文档存储总空间量。
scale
参数会影响此值。如果集合数据被压缩(默认为 WiredTiger),则存储大小反映压缩大小,可能小于
collStats.size
的值。storageSize
不包括索引大小。有关索引大小,请参阅totalIndexSize
。
collStats.indexDetails
一个文档,报告集合中每个索引的 WiredTiger 存储引擎的数据。其他存储引擎将返回一个空文档。
此文档中的字段是索引的名称,而值本身是包含存储引擎提供的索引统计信息的文档。这些统计信息仅用于内部诊断。
indexDetails
包含正在构建的索引的详细信息。
collStats.indexBuilds
一个数组,包含正在集合上构建的索引的名称。一旦索引构建完成,该索引将不会出现在
indexBuilds
中。
collStats.totalIndexSize
所有索引使用的磁盘空间总和。参数
scale
影响此值。如果索引使用前缀压缩(这是 WiredTiger 的默认设置),则返回的大小反映计算总和时此类索引的压缩大小。
totalIndexSize
包括正在构建的总大小中的索引。
collStats.totalSize
storageSize
和totalIndexSize
的总和。参数scale
影响此值。
collStats.indexSizes
该字段指定了集合中每个现有索引的键和大小。参数
scale
影响此值。如果索引使用前缀压缩(这是WiredTiger的默认设置),则返回的大小反映了压缩后的大小。
indexSizes
包括正在构建的索引的大小。
collStats.scaleFactor
该命令使用的
scale
值。如果您指定了非整数的缩放因子,MongoDB将使用指定因子的整数部分。例如,如果您指定缩放因子为
1023.999
,MongoDB将使用1023
作为缩放因子。
collStats.capped
如果集合是固定大小的,则该字段将为"true"。
collStats.max
显示可能存在于固定集合中的最大文档数量。
collStats.wiredTiger
wiredTiger
仅在使用WiredTiger存储引擎时出现。当使用可查询加密时,WiredTiger数据将被编辑,只保留url
字段。本文档包含直接由WiredTiger引擎报告的数据以及其他用于内部诊断的数据。
collStats.inMemory
inMemory
仅在使用内存存储引擎时出现。本文档包含存储引擎直接报告的数据以及其他用于内部诊断的数据。