버전 5.1에 추가되었습니다.
쿼리 결과를 찾고 반환하기 위해 MongoDB는 다음 쿼리 엔진 중 하나를 사용합니다.
클래식 쿼리 엔진
MongoDB 5.1부터 일부 쿼리에 사용할 수 있는 슬롯 기반 쿼리 실행 엔진입니다.
MongoDB는 쿼리를 실행할 엔진을 자동으로 선택합니다. 특정 쿼리에 대한 엔진을 수동으로 지정할 수 없습니다.
MongoDB는 특정 조건이 충족되는 경우 쿼리 하위 집합에 슬롯 기반 쿼리 실행 엔진을 사용할 수 있습니다. 대부분의 경우 슬롯 기반 실행 엔진은 기존 쿼리 엔진에 비해 성능이 향상되고 CPU 및 메모리 비용이 낮습니다.
MongoDB는 슬롯 기반 쿼리 실행 엔진에 적합하지 않은 쿼리에 대해 클래식 엔진을 사용합니다.
참고
버전 7.0.17부터 7.0의 패치 버전에 대해 슬롯 기반 쿼리 실행 엔진 더 이상 기본값 으로 활성화되지 않습니다. 쿼리에서 슬롯 기반 쿼리 실행 엔진 사용하려면 8.0 버전으로 업그레이드 하세요. 기본값 으로 활성화되어 있습니다.
슬롯 기반 실행 엔진에 적합한 쿼리
MongoDB 는 쿼리별로 슬롯 기반 실행 엔진 을 사용할 수 있는 자격을 결정하고 쿼리 에 있는 각 연산자 및 표현식에 대한 지원 을 고려합니다. 예를 예시 슬롯 기반 실행 엔진 을 사용하는 두 가지 일반적인 파이프라인은 $group 또는 $lookup 단계가 있는 집계입니다. 그러나 슬롯 기반 실행 엔진 에 대한 지원 은 버전에 따라 다르며 활발하게 변경되고 있습니다.
쿼리에서 슬롯 기반 실행 엔진을 사용했는지 확인하려면 사용된 쿼리 엔진 확인 섹션을 참조하세요.
사용된 쿼리 엔진 확인
쿼리를 실행하는 데 클래식 엔진 또는 슬롯 기반 실행 엔진이 사용되었는지 확인하는 몇 가지 방법이 있습니다.
쿼리 설명 결과 확인
쿼리에 대한 설명 결과는 사용된 쿼리 엔진에 따라 다릅니다. 예를 들어 슬롯 기반 실행 엔진을 사용하여 실행된 쿼리에 대한 설명 결과에는 explain.queryPlanner.winningPlan.slotBasedPlan 필드가 포함됩니다.
쿼리 엔진 간 설명 결과의 차이점에 대한 자세한 내용은 출력 구조 설명을 참조하세요.
느린 쿼리 로그 확인
느린 작업 로그 메시지에는 쿼리를 실행한 쿼리 엔진을 나타내는 queryFramework 필드가 포함됩니다.
queryFramework: "classic"는 클래식 엔진이 쿼리를 실행했음을 나타냅니다.queryFramework: "sbe"는 슬롯 기반 쿼리 실행 엔진이 쿼리를 완료했음을 나타냅니다.
슬롯 기반 실행 엔진을 사용한 쿼리에 대한 로그 메시지 예시를 보려면 느린 작업을 참조하세요.