跳转到主要内容
可并行执行多条语句。

语法

statement1 PARALLEL WITH statement2 [PARALLEL WITH statement3 ...]
并行执行语句 statement1statement2statement3 等。这些语句的输出会被丢弃。 在很多情况下,并行执行这些语句可能比按顺序依次执行相同的语句更快。例如,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) 。
最后修改于 2026年6月10日