PARALLEL WITH 子句
允许并行执行多个语句。
语法
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
)。