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