SELECT. Для наглядности добавим в таблицу ClickHouse немного данных:
EXPLAIN. Эти этапы показаны на схеме ниже:
Давайте посмотрим, как каждый компонент работает в процессе выполнения запроса. Мы возьмем несколько запросов, а затем разберем их с помощью оператора EXPLAIN.
Парсер
Задача парсера — преобразовать текст запроса в AST (абстрактное синтаксическое дерево). Этот шаг можно наглядно представить с помощью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=0:
EXPLAIN:
Исполнитель
SELECT, INSERT или INSERT SELECT.