planCacheClear
정의
planCacheClear
컬렉션 에 대해 캐시된 쿼리 계획을 제거합니다. 해당 형태에 대해 캐시된 쿼리 계획을 제거 하려면 계획 캐시 쿼리 형태 를 지정합니다. 캐시된 쿼리 계획을 모두 지우려면 계획 캐시 쿼리 형태 를 생략합니다.
팁
mongosh
에서 이 명령은PlanCache.clear()
및PlanCache.clearPlansByQuery()
헬퍼 메서드를 통해서도 실행할 수 있습니다.헬퍼 메서드는
mongosh
사용자에게 편리하지만 데이터베이스 명령과 동일한 수준의 정보를 반환하지 못할 수 있습니다. 편의가 필요하지 않거나 추가 리턴 필드가 필요한 경우 데이터베이스 명령을 사용합니다.
쿼리 설정
MongoDB 8.0 부터는 인덱스 필터 를 추가하는 대신 쿼리 설정을 사용합니다. 인덱스 필터는 MongoDB 8.0 부터 더 이상 사용되지 않습니다.
쿼리 설정에는 인덱스 필터보다 더 많은 기능이 있습니다. 또한 인덱스 필터는 영구적이지 않으며 모든 클러스터 노드에 대한 인덱스 필터를 쉽게 만들 수 없습니다. 쿼리 설정을 추가하고 예제를 탐색하려면 setQuerySettings
를 참조하세요.
호환성
이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
중요
이 명령은 M0, M2 및 M5 클러스터에서 지원되지 않습니다. 자세한 내용은 지원되지 않는 명령을 참조하세요.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
구문
명령은 다음과 같은 구문을 가집니다:
db.runCommand( { planCacheClear: <collection>, query: <query>, sort: <sort>, projection: <projection>, comment: <any> } )
명령 필드
이 명령은 다음과 같은 선택적 필드를 사용합니다.
필드 | 유형 | 설명 |
---|---|---|
query | 문서 | 선택 사항. 계획 캐시 쿼리 형태 의 쿼리 조건자입니다. 필드 이름을 포함한 술어의 구조만이 형태에 중요합니다. 즉, 쿼리 조건자의 값이 중요하지 않습니다. |
projection | 문서 | 선택 사항. 계획 캐시 쿼리 형태 와 관련된 프로젝션 입니다. |
sort | 문서 | 선택 사항. 계획 캐시 쿼리 형태 와 관련된 정렬입니다. |
comment | any | 선택 사항. 이 명령에 첨부할 사용자 제공 코멘트입니다. 설정되면 이 설명은 다음 위치에서 이 명령의 레코드와 함께 표시됩니다.
댓글은 유효한 모든 BSON types (문자열, 정수, 객체, 배열 등)이 될 수 있습니다. |
캐시된 쿼리 계획이 있는 쿼리 형태를 확인하려면 예제를 참조하세요.
필요한 액세스 권한
authorization
(으)로 실행되는 시스템에서 사용자는 planCacheWrite
조치를 포함하는 액세스 권한이 있어야 합니다.
예시
계획 캐시 쿼리 형태에 대해 캐시된 계획 지우기
컬렉션 orders
에 다음과 같은 계획 캐시 쿼리 형태 가 있는 경우
{ "query" : { "qty" : { "$gt" : 10 } }, "sort" : { "ord_date" : 1 }, "projection" : { }, "planCacheShapeHash" : "9AAD95BE" }
경고
MongoDB 8.0 부터 기존 queryHash
필드 의 이름이 planCacheShapeHash
로 변경되었습니다. 이전 MongoDB 버전을 사용하는 경우 planCacheShapeHash
queryHash
가 표시됩니다.
다음 작업은 형태에 대해 캐시된 쿼리 계획을 지웁니다.
db.runCommand( { planCacheClear: "orders", query: { "qty" : { "$gt" : 10 } }, sort: { "ord_date" : 1 } } )
collection에 대해 캐시된 모든 계획 지우기
다음 예에서는 orders
collection에 대해 캐시된 모든 쿼리 계획을 지웁니다.
db.runCommand( { planCacheClear: "orders" } )