Перейти к основному содержанию
Позволяет выполнять несколько команд одновременно.

Синтаксис

statement1 PARALLEL WITH statement2 [PARALLEL WITH statement3 ...]
Выполняет команды statement1, statement2, statement3, … параллельно. Результат выполнения этих команд отбрасывается. Во многих случаях параллельное выполнение команд может быть быстрее, чем их обычное последовательное выполнение. Например, statement1 PARALLEL WITH statement2 PARALLEL WITH statement3, скорее всего, выполнится быстрее, чем statement1; statement2; statement3.

Примеры

Создаются две таблицы параллельно:
CREATE TABLE table1(x Int32) ENGINE = MergeTree ORDER BY tuple()
PARALLEL WITH
CREATE TABLE table2(y String) ENGINE = MergeTree ORDER BY tuple();
Удаляет две таблицы параллельно:
DROP TABLE table1
PARALLEL WITH
DROP TABLE table2;

Настройки

Параметр max_threads определяет, сколько потоков будет создано.

Сравнение с UNION

Конструкция PARALLEL WITH в некоторой степени похожа на UNION, который тоже выполняет свои операнды параллельно. Однако есть несколько отличий:
  • PARALLEL WITH не возвращает никаких результатов выполнения своих операндов и может лишь повторно сгенерировать возникшее в них исключение, если оно есть;
  • PARALLEL WITH не требует, чтобы его операнды имели один и тот же набор результирующих столбцов;
  • PARALLEL WITH может выполнять любые команды (не только SELECT).
Последнее изменение 10 июня 2026 г.