$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' } } } ]