collStats
정의
collStats
버전 6.2부터 더 이상 사용되지 않습니다.
6.2 이상 버전에서는
$collStats
집계 단계를 사용합니다.collStats
명령은 지정된 컬렉션에 대한 다양한 스토리지 통계를 반환합니다.collStats
명령 및 해당mongosh
헬퍼 메서드db.collection.stats()
대신$collStats
집계 단계를 사용합니다.팁
mongosh
에서 이 명령은stats()
도우미 메서드를 통해서도 실행할 수 있습니다.collStats
출력의 특정 필드에dataSize()
,estimatedDocumentCount()
,isCapped()
,latencyStats()
,storageSize()
,totalIndexSize()
및totalSize()
도우미 메서드를 사용하여 액세스할 수 있습니다.헬퍼 메서드는
mongosh
사용자에게 편리하지만 데이터베이스 명령과 동일한 수준의 정보를 반환하지 못할 수 있습니다. 편의가 필요하지 않거나 추가 리턴 필드가 필요한 경우 데이터베이스 명령을 사용합니다.collStats
를 실행하려면db.runCommand( { <command> } )
메서드를 사용합니다.
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
참고
이 명령은 모든 MongoDB Atlas 클러스터에서 지원됩니다. 모든 명령에 대한 Atlas 지원에 관해 자세히 알아보려면 지원되지 않는 명령을 참조하십시오.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
구문
명령은 다음과 같은 구문을 가집니다:
db.runCommand( { collStats: <string>, scale: <int> } )
명령 필드
이 명령은 다음 필드를 사용합니다.
필드 | 유형 | 설명 |
---|---|---|
collStats | 문자열 | 대상 컬렉션의 이름입니다. |
scale | int | 선택 사항. 다양한 크기 데이터의 배율 인수입니다(필드 이름에 측정 단위를 지정하는 크기 제외). 기본값은 1로, 크기 데이터를 바이트 단위로 반환합니다. 바이트가 아닌 킬로바이트를 표시하려면 정수가 아닌 배율 인수를 지정하면 MongoDB는 지정된 인수의 정수 부분을 사용합니다. 예를 들어, 배율 인수를 배율 인수는 영향을 받는 크기 값을 정수로 반올림합니다. |
행동
편집
Queryable Encryption을 사용하는 경우 $collStats
출력은 암호화된 컬렉션의 특정 정보를 삭제합니다.
출력은 다음을 생략합니다.
"queryExecStats"
출력은 다음을 생략합니다.
"latencyStats"
출력은
"WiredTiger"
(있는 경우)를 삭제하여url
필드만 포함합니다.
조정된 크기
지표 이름(예: "bytes
currently in the cache"
)으로 달리 지정하지 않는 한 크기와 관련된 값은 바이트 단위로 표시되며 scale
(으)로 재정의할 수 있습니다.
배율 인수는 영향을 받는 크기 값을 정수로 반올림합니다.
예기치 않은 종료 후 정확도
Wired Tiger 스토리지 엔진을 사용하여 mongod
를 비정상적으로 종료한 후에는 collStats
에서 보고한 크기 통계가 정확하지 않을 수 있습니다.
편차의 정도는 마지막 체크포인트와 비정상 종료 사이에 수행된 삽입, 업데이트 또는 삭제 작업의 수에 따라 달라집니다. 체크포인트는 보통 60초마다 발생합니다. 그러나mongod
기본값이 아닌 --syncdelay
설정으로 실행되는 인스턴스는 체크포인트가 다소 빈번하게 발생할 수 있습니다.
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
timeseries
는 time series 컬렉션에서collStats
명령을 실행할 때 나타납니다.이 문서에는 내부 진단용 데이터가 포함되어 있습니다.
collStats.numOrphanDocs
컬렉션 내의 고아 문서 수입니다.
버전 6.0에 추가.
collStats.storageSize
문서 저장을 위해 이 컬렉션에 할당된 저장소의 총 크기입니다.
scale
인수는 이 값에 영향을 줍니다.컬렉션 데이터가 압축되어 있는 경우(
default for WiredTiger
) 스토리지 크기는 압축된 크기를 반영하며collStats.size
에 대한 값보다 작을 수 있습니다.storageSize
에는 인덱스 크기가 포함되지 않습니다. 인덱스 크기 조정은totalIndexSize
를 참조하세요.
collStats.freeStorageSize
인메모리 스토리지 엔진에는 사용할 수 없습니다.
재사용할 수 있는 스토리지의 양입니다.
scale
인수는 이 값에 영향을 줍니다.이 필드는 스토리지를 재사용할 수 있는 경우에만 사용할 수 있습니다(즉 0보다 큼).
collStats.nindexes
컬렉션의 인덱스 수입니다. 모든 컬렉션에는 _id 필드에 하나 이상의 인덱스가 있습니다.
nindexes
현재 빌드 중인 인덱스가 카운트에 포함됩니다.
collStats.indexDetails
컬렉션의 각 인덱스에 대해 WiredTiger 스토리지 엔진의 데이터를 보고하는 문서입니다. 다른 스토리지 엔진은 빈 문서를 반환합니다.
이 문서의 필드는 인덱스의 이름이며, 값 자체는 스토리지 엔진에서 제공하는 인덱스에 대한 통계가 포함된 문서입니다. 이러한 통계는 내부 진단용입니다.
indexDetails
현재 빌드 중인 인덱스에 대한 세부 정보를 포함합니다.
collStats.indexBuilds
현재 컬렉션에 빌드되고 있는 인덱스의 이름이 포함된 배열입니다. 인덱스 빌드가 완료되면 인덱스가
indexBuilds
에 나타나지 않습니다.
collStats.totalIndexSize
모든 인덱스에서 사용하는 디스크 공간의 합계입니다.
scale
인수는 이 값에 영향을 줍니다.인덱스가 접두사 압축(
default for WiredTiger
)을 사용하는 경우, 반환된 크기는 합계를 계산할 때 해당 인덱스의 압축된 크기를 반영합니다.totalIndexSize
현재 전체 크기로 작성 중인 인덱스를 포함합니다.
collStats.totalSize
storageSize
와totalIndexSize
의 합입니다.scale
인수는 이 값에 영향을 줍니다.
collStats.indexSizes
이 필드는 컬렉션에 있는 모든 기존 인덱스의 키와 크기를 지정합니다.
scale
인수는 이 값에 영향을 줍니다.인덱스가 접두사 압축(
default for WiredTiger
)을 사용하는 경우 반환된 크기는 압축된 크기를 반영합니다.indexSizes
현재 빌드 중인 인덱스의 크기가 포함됩니다.
collStats.scaleFactor
명령에 사용된
scale
값입니다.정수가 아닌 배율을 지정한 경우, MongoDB는 지정한 배율의 정수 부분을 사용합니다. 예를 들어, 배율 인수를
1023.999
로 지정하면 MongoDB는 배율 인수로1023
을 사용합니다.
collStats.capped
컬렉션이 제한되어있는 경우 이 필드는 "true" 가 됩니다.
collStats.max
고정 사이즈 컬렉션에 포함될 수 있는 최대 문서 수를 표시합니다.
collStats.maxSize
고정 사이즈 컬렉션의 최대 크기를 보여 줍니다.
collStats.wiredTiger
wiredTiger
는 WiredTiger 스토리지 엔진을 사용할 때만 나타납니다. Queryable Encryption을 사용하는 경우, WiredTiger 데이터는url
필드로만 수정됩니다.이 문서에는 WiredTiger 엔진에서 직접 보고한 데이터와 내부 진단용 기타 데이터가 포함되어 있습니다.
collStats.inMemory
inMemory
인메모리 스토리지 엔진을 사용할 때만 표시됩니다.이 문서에는 스토리지 엔진에서 직접 보고한 데이터와 내부 진단용으로 사용되는 기타 데이터가 포함되어 있습니다.