PARALLEL WITH Clause
Allows to execute multiple statements in parallel.
Syntax
statement1 PARALLEL WITH statement2 [PARALLEL WITH statement3 ...]
Executes statements statement1
, statement2
, statement3
, ... in parallel with each other. The output of those statements is discarded.
Executing statements in parallel may be faster than just a sequence of the same statements in many cases. For example, statement1 PARALLEL WITH statement2 PARALLEL WITH statement3
is likely to be faster than statement1; statement2; statement3
.
Examples
Creates two tables in parallel:
CREATE TABLE table1(x Int32) ENGINE = MergeTree ORDER BY tuple()
PARALLEL WITH
CREATE TABLE table2(y String) ENGINE = MergeTree ORDER BY tuple();
Drops two tables in parallel:
DROP TABLE table1
PARALLEL WITH
DROP TABLE table2;
Settings
Setting max_threads controls how many threads are spawned.
Comparison with UNION
The PARALLEL WITH
clause is a bit similar to UNION, which also executes its operands in parallel. However there are some differences:
PARALLEL WITH
doesn't return any results from executing its operands, it can only rethrow an exception from them if any;PARALLEL WITH
doesn't require its operands to have the same set of result columns;PARALLEL WITH
can execute any statements (not justSELECT
).