$indexStats (aggregation)
정의
$indexStats
컬렉션 의 각 인덱스 사용에 관한 통계를 반환합니다. 액세스 제어 로 실행 하는 경우 최소한
clusterMonitor
역할 이 있는 사용자로 인증합니다.$indexStats
단계는 빈 문서를 사용하며 구문은 다음과 같습니다.{ $indexStats: { } } 각 인덱스에 대해 반환 문서에는 다음 필드가 포함됩니다.
행동
액세스 필드
액세스 필드에 보고하는 통계는 쿼리가 실행되고 있는 노드에만 적용되며 사용자 요청에 의해 구동되는 인덱스 액세스만 포함합니다. 여기에는 TTL 인덱스를 통한 삭제나 청크 분할 및 마이그레이션 작업과 같은 내부 작업은 포함되지 않습니다.
제한 사항
$indexStats
는 집계 파이프라인의 첫 번째 단계여야 합니다.$indexStats
은(는) 거래에서 허용되지 않습니다.
인덱스 통계 재설정 고려 사항
예시
예를 들어 orders
컬렉션에는 다음과 같은 문서가 포함되어 있습니다.
db.orders.insertMany( [ { _id : 1, item : "abc", price : 12, quantity : 2, type: "apparel" }, { _id : 2, item : "jkl", price : 20, quantity : 1, type: "electronics" }, { _id : 3, item : "abc", price : 10, quantity : 5, type: "apparel" } ] )
컬렉션에 다음 두 개의 인덱스를 만듭니다.
db.orders.createIndex( { item: 1, quantity: 1 } ) db.orders.createIndex( { type: 1, item: 1 } ) db.orders.createIndex( { price: 1 }, { partialFilterExpression: { type: "apparel" } } )
collection에 대해 몇 가지 쿼리를 실행합니다.
db.orders.find( { type: "apparel"} ) db.orders.find( { item: "abc" } ).sort( { quantity: 1 } ) db.orders.find( { price: { $gt: 10 } } )
orders
컬렉션에서의 인덱스 사용에 대한 통계를 보려면 다음 집계 작업을 실행하세요.
db.orders.aggregate( [ { $indexStats: { } } ] )
이 작업은 각 인덱스에 대한 사용 통계가 포함된 문서를 반환합니다.
[ { name: 'type_1_item_1', key: { type: 1, item: 1 }, host: 'examplehost.local:27018', accesses: { ops: Long("1"), since: ISODate("2024-05-02T15:07:21.420Z") }, shard: "shardA", spec: { v: 2, key: { type: 1, item: 1 }, name: 'type_1_item_1' } }, { name: 'item_1_quantity_1', key: { item: 1, quantity: 1 }, host: 'examplehost.local:27018', accesses: { ops: Long("1"), since: ISODate("2024-05-02T15:07:21.254Z") }, shard: "shardA", spec: { v: 2, key: { item: 1, quantity: 1 }, name: 'item_1_quantity_1' } }, { name: '_id_', key: { _id: 1 }, host: 'examplehost.local:27018', accesses: { ops: Long("0"), since: ISODate("2024-05-02T15:07:13.274Z") }, shard: "shardA", spec: { v: 2, key: { _id: 1 }, name: '_id_' } }, { name: 'price_1', key: { price: 1 }, host: 'examplehost.local:27018', accesses: { ops: Long("0"), since: ISODate("2024-05-02T15:07:54.847Z") }, shard: "shardA", spec: { v: 2, key: { price: 1 }, name: 'price_1', partialFilterExpression: { type: 'apparel' } } } ]