SELECT 쿼리가 어떻게 실행되는지 살펴보겠습니다. 이를 설명하기 위해 ClickHouse의 테이블에 데이터를 몇 개 추가해 보겠습니다:
EXPLAIN 쿼리를 사용해 분석하고 문제를 진단할 수 있습니다. 이러한 단계는 아래 차트에 요약되어 있습니다:
이제 쿼리 실행 중 각 엔터티가 어떻게 동작하는지 살펴보겠습니다. 몇 가지 쿼리를 예로 들어 EXPLAIN 구문을 사용해 자세히 살펴보겠습니다.
파서
파서의 목적은 쿼리 텍스트를 AST(Abstract Syntax Tree)로 변환하는 것입니다. 이 단계는EXPLAIN AST를 사용해 시각적으로 확인할 수 있습니다:
분석기
분석기는 ClickHouse24.3부터 기본적으로 활성화되어 있으며, 26.9부터는 유일한 쿼리 분석 방식입니다. 이 버전부터 enable_analyzer는 더 이상 사용되지 않는 설정이 되어 비활성화할 수 없습니다.
분석기는 쿼리 처리 과정의 핵심 구성 요소이기 때문에 일부 쿼리에 부정적인 영향을 줄 수 있습니다. 이에 맞춰 수정이 필요한 쿼리는 알려진 비호환성을 참고하십시오.
플래너
EXPLAIN PLAN 또는 EXPLAIN을 사용해 쿼리 실행 계획을 확인할 수 있습니다(EXPLAIN은 EXPLAIN PLAN을 실행합니다).
minimum_date, maximum_date, percentage)은 알게 되었지만, 실행해야 하는 모든 작업의 세부 정보도 확인할 수 있습니다. 이를 위해 actions=1로 설정하면 됩니다.
쿌리 파이프라인
graph 설정을 1로 지정하고 출력 형식을 TSV로 설정할 수 있습니다:
x 뒤에 오는 숫자는 사용 중인 입력/출력의 수를 나타냅니다. compact 형식으로 표시하지 않으려면 compact=0을 추가하세요:
EXPLAIN 쿼리를 다시 실행해 보겠습니다:
실행기
SELECT, INSERT, 또는 INSERT SELECT 중 어떤 작업을 수행하는지에 따라 실행기의 유형이 달라집니다.