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.
Query pipeline
graph, которой можно присвоить значение 1, указав формат вывода TSV:
x, за которым следует число, обозначает количество используемых входов/выходов. Если вы не хотите видеть их в компактном виде, всегда можно добавить compact=0:
EXPLAIN:
Исполнитель
SELECT, INSERT или INSERT SELECT.