문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

cursor.explain()

이 페이지의 내용

  • 정의
  • 행동
  • 출력
  • 예제
cursor.explain(verbosity)

중요

Mongo쉬 방법

이 페이지에서는 mongosh 메서드를 설명합니다. 이는 Node.js와 같은 언어별 드라이버에 대한 설명서가 아닙니다 .

MongoDB API 드라이버의 경우 언어별 MongoDB 드라이버 설명서를 참조하세요.

db.collection.find() 메서드에 대한 쿼리 계획에 대한 정보를 제공합니다.

explain() 메서드의 형식은 다음과 같습니다.

db.collection.find().explain()

explain() 메서드에는 다음과 같은 매개 변수가 있습니다.

매개변수
유형
설명
verbose
문자열

선택 사항. 설명 출력의 상세도 모드를 지정합니다. 모드는 explain()의 동작에 영향을 미치고 반환할 정보의 양을 결정합니다. 가능한 모드는 "queryPlanner", "executionStats", "allPlansExecution"입니다.

기본 모드는 "queryPlanner"입니다.

cursor.explain() 의 이전 버전과의 하위 호환성을 위해 MongoDB는 true"allPlansExecution" 로, false"queryPlanner" 로 해석합니다.

모드에 대한 자세한 내용은 상세도 모드를 참조하세요.

explain() 메서드는 쿼리 계획과 실행 통계(선택 사항)가 포함된 문서를 반환합니다.

참고

explain 를 사용하면 기존의 모든 계획 캐시 항목이 무시되고 MongoDB 쿼리 플래너가 새 계획 캐시 항목을 만들 수 없습니다.

cursor.explain() 의 동작과 반환되는 정보의 양은 verbosity 모드에 따라 다릅니다.

기본적으로 cursor.explain()queryPlanner 상세도 모드에서 실행됩니다.

MongoDB는 쿼리 옵티마이저 를 실행하여 평가 중인 작업에 대한 성공적인 계획을 선택합니다. cursor.explain() 는 평가된 메서드에 대한 queryPlanner 정보를 반환합니다.

MongoDB는 쿼리 옵티마이저를 실행하여 성공적인 계획을 선택하고, 성공적인 계획을 완료할 때까지 실행하고, 성공적인 계획의 실행을 설명하는 통계를 반환합니다.

cursor.explain() 은(는) 평가된 메서드에 대한 queryPlannerexecutionStats 정보를 반환합니다. 그러나 executionStats 는 거부된 계획에 대한 쿼리 실행 정보를 제공하지 않습니다.

MongoDB는 쿼리 옵티마이저를 실행하여 가장 적합한 계획을 선택하고 이를 실행하여 완료합니다. "allPlansExecution" 모드에서 MongoDB는 계획 선택 중에 캡처된 다른 후보 계획에 관한 통계뿐만 아니라 가장 적합한 계획의 실행을 설명하는 통계를 반환합니다.

cursor.explain() 은(는) 평가된 메서드에 대한 queryPlannerexecutionStats 정보를 반환합니다. executionStats 에는 성공적인 계획 에 대한 완료된 쿼리 실행 정보가 포함되어 있습니다.

쿼리 옵티마이저가 둘 이상의 계획을 고려한 경우, executionStats 정보에는 채택된 계획과 거부된 후보 계획 모두에 관하여 계획 선택 단계에서 캡처된 부분 실행 정보도 포함됩니다.

db.collection.explain().find()db.collection.find().explain() 와 유사하지만 다음과 같은 주요 차이점이 있습니다.

자세한 내용은 db.collection.explain() 을 참조하세요.

cursor.explain() 작업은 다음과 관련된 정보를 반환할 수 있습니다.

  • explainVersion, 출력 형식 버전(예: "1")입니다.

  • command은(는) 설명 중인 명령을 자세히 설명합니다.

  • queryPlanner 쿼리 옵티마이저 에서 선택한 계획을 자세히 설명하고 거부된 계획을 나열합니다.

  • executionStats은(는) 성공적인 계획과 거부된 계획의 실행을 자세히 설명합니다.

  • serverInfoMongoDB 인스턴스에 대한 정보를 제공합니다.

  • serverParameters내부 매개변수를 자세히 설명합니다.

다변성 모드(예: queryPlanner, executionStats, allPlansExecution)는 결과에 executionStats를 포함되는지 여부와 executionStats요금제 선택 중 캡처한 데이터가 포함되는지 여부를 결정합니다.

Explain 출력은 BSON 문서의 최대 중첩 깊이(중첩 수준 100단계)로 제한됩니다. 한도를 초과하는 Explain 출력은 잘립니다.

출력에 대한 자세한 내용은 Explain 결과 항목을 참조하세요.

다음 예제에서는 cursor.explain() "executionStats" 상세도 모드에서 를 실행하여 지정된 작업에 대한 쿼리 계획 및 실행 정보를 반환합니다.db.collection.find()

db.products.find(
{ quantity: { $gt: 50 }, category: "apparel" }
).explain("executionStats")
← cursor.count()

이 페이지의 내용