문서 홈 → 애플리케이션 개발 → MongoDB 매뉴얼
$indexStats (aggregation)
정의
$indexStats
collection의 각 인덱스 사용에 관한 통계를 반환합니다. 액세스 제어를 함께 실행하는 경우 최소한
clusterMonitor
역할이 있는 사용자로 인증합니다.$indexStats
단계는 빈 문서를 사용하며 구문은 다음과 같습니다.{ $indexStats: { } } 각 인덱스에 대해 반환 문서에는 다음 필드가 포함됩니다.
출력 필드설명name
인덱스 이름인덱스 키 사양입니다.
참조: 사양.
mongod
프로세스의 호스트 이름 및 포트입니다.인덱스 사용 통계
ops
는 인덱스를 사용한 작업의 수입니다.since
은(는) MongoDB가 통계를 수집한 시간입니다.
호스트와 연결된 샤드의 이름
샤드 클러스터에서만 사용할 수 있습니다.
버전 4.2.4의 새로운 기능.
인덱스 키 사양 문서를 포함하는 인덱스에 대한 전체 사양 문서입니다.
인덱스 옵션
hidden
은 값이true
인 경우에만 포함됩니다.버전 4.2.4의 새로운 기능.
인덱스가 현재 작성 중인지 여부를 나타냅니다.
true
인 경우에만 사용할 수 있습니다.버전 4.2.4의 새로운 기능.
인덱스에 대한 통계는
mongod
재시작 또는 인덱스 삭제 및 재생성 시 재설정됩니다.
행동
액세스 필드
액세스 필드에서 보고하는 통계에는 사용자 요청에 따른 인덱스 액세스만 포함됩니다. TTL 인덱스 를 통한 삭제나 청크 분할 및 마이그레이션 작업과 같은 내부 작업은 포함되지 않습니다.
제한 사항
$indexStats
는 aggregation pipeline의 첫 번째 단계여야 합니다.$indexStats
은(는) 거래에서 허용되지 않습니다.
인덱스 수정으로 통계 재설정
기존 인덱스를 수정하면( collMod
명령 참조) 해당 인덱스의 통계가 재설정됩니다.
예제
예를 들어 orders
컬렉션에는 다음과 같은 문서가 포함되어 있습니다.
{ "_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 } )
collection에 대해 몇 가지 쿼리를 실행합니다.
db.orders.find( { type: "apparel"} ) db.orders.find( { item: "abc" } ).sort( { quantity: 1 } )
orders
컬렉션에서의 인덱스 사용에 대한 통계를 보려면 다음 애그리게이션 작업을 실행하세요.
db.orders.aggregate( [ { $indexStats: { } } ] )
이 작업은 각 인덱스에 대한 사용 통계가 포함된 문서를 반환합니다.
{ "name" : "item_1_quantity_1", "key" : { "item" : 1, "quantity" : 1 }, "host" : "examplehost.local:27018", "accesses" : { "ops" : NumberLong(1), "since" : ISODate("2020-02-10T21:11:23.059Z") }, "shard" : "shardA", // Available starting in MongoDB 4.2.4 if run on sharded cluster "spec" : { // Available starting in MongoDB 4.2.4 "v" : 2, "key" : { "item" : 1, "quantity" : 1 }, "name" : "item_1_quantity_1" } } { "name" : "item_1_price_1", "key" : { "item" : 1, "price" : 1 }, "host" : "examplehost.local:27018", "accesses" : { "ops" : NumberLong(1), "since" : ISODate("2020-02-10T21:11:23.233Z") }, "shard" : "shardA", // Available starting in MongoDB 4.2.4 if run on sharded cluster "spec" : { // Available starting in MongoDB 4.2.4 "v" : 2, "key" : { "item" : 1, "price" : 1 }, "name" : "item_1_price_1" } } { "name" : "item_1", "key" : { "item" : 1 }, "host" : "examplehost.local:27018", "accesses" : { "ops" : NumberLong(0), "since" : ISODate("2020-02-10T21:11:22.947Z") }, "shard" : "shardA", // Available starting in MongoDB 4.2.4 if run on sharded cluster "spec" : { // Available starting in MongoDB 4.2.4 "v" : 2, "key" : { "item" : 1 }, "name" : "item_1" } } { "name" : "_id_", "key" : { "_id" : 1 }, "host" : "examplehost.local:27018", "accesses" : { "ops" : NumberLong(0), "since" : ISODate("2020-02-10T21:11:18.298Z") }, "shard" : "shardA", // Available starting in MongoDB 4.2.4 if run on sharded cluster "spec" : { // Available starting in MongoDB 4.2.4 "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_" } }