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