SELECT 쿼리가 어떻게 실행되는지 살펴보겠습니다. 이를 설명하기 위해 ClickHouse의 테이블에 데이터를 몇 개 추가해 보겠습니다:
EXPLAIN 쿼리를 사용해 분석하고 문제를 진단할 수 있습니다. 이러한 단계는 아래 차트에 요약되어 있습니다:
이제 쿼리 실행 중 각 엔터티가 어떻게 동작하는지 살펴보겠습니다. 몇 가지 쿼리를 예로 들어 EXPLAIN 구문을 사용해 자세히 살펴보겠습니다.
파서
EXPLAIN AST를 사용해 시각적으로 확인할 수 있습니다:
분석기
enable_analyzer=0으로 설정하면 기존 아키텍처를 사용할 수 있습니다. 새 아키텍처는 기본적으로 활성화되어 있습니다. 기존 아키텍처는 새 분석기가 일반 제공되면 더 이상 권장되지 않을 예정이므로, 여기서는 새 아키텍처만 설명하겠습니다.
새 아키텍처는 ClickHouse 성능을 개선하기 위한 더 나은 기반을 제공합니다. 다만 쿼리 처리 과정의 핵심 구성 요소이기 때문에 일부 쿼리에 부정적인 영향을 줄 수 있으며, 알려진 비호환성도 있습니다. 쿼리 수준 또는 사용자 수준에서
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 중 어떤 작업을 수행하는지에 따라 실행기의 유형이 달라집니다.