Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

PARALLEL WITH

Permite executar várias instruções em paralelo.

Sintaxe

statement1 PARALLEL WITH statement2 [PARALLEL WITH statement3 ...]

Executa as instruções statement1, statement2, statement3, … em paralelo. A saída dessas instruções é descartada.

Em muitos casos, executar instruções em paralelo pode ser mais rápido do que simplesmente executá-las em sequência. Por exemplo, statement1 PARALLEL WITH statement2 PARALLEL WITH statement3 provavelmente será mais rápido do que statement1; statement2; statement3.

Exemplos

Cria duas tabelas em paralelo:

CREATE TABLE table1(x Int32) ENGINE = MergeTree ORDER BY tuple()
PARALLEL WITH
CREATE TABLE table2(y String) ENGINE = MergeTree ORDER BY tuple();

Remove duas tabelas em paralelo:

DROP TABLE table1
PARALLEL WITH
DROP TABLE table2;

Configurações

A configuração max_threads controla quantas threads são criadas.

Comparação com UNION

A cláusula PARALLEL WITH é um pouco parecida com UNION, que também executa seus operandos em paralelo. No entanto, há algumas diferenças:

  • PARALLEL WITH não retorna nenhum resultado da execução de seus operandos; se houver alguma exceção, apenas a propaga novamente;
  • PARALLEL WITH não exige que seus operandos tenham o mesmo conjunto de colunas no resultado;
  • PARALLEL WITH pode executar quaisquer instruções (não apenas SELECT).
Navigation