Todos os produtos
Search
Central de documentação

PolarDB:Resultados de testes de desempenho em cenários de consulta paralela

Última atualização: Jun 28, 2026

Este tópico apresenta os resultados do benchmark TPC-H para o recurso de consulta paralela no PolarDB for MySQL 8.0.1 e 8.0.2 Cluster Edition. Use esses dados para avaliar os ganhos de desempenho em OLAP (Online Analytical Processing) antes de ativar a consulta paralela em seu ambiente.

Funcionamento da consulta paralela

A consulta paralela reduz o tempo de resposta ao distribuir shards de dados entre várias threads na camada de armazenamento. O recurso é ativado automaticamente quando o volume de dados consultados ultrapassa um determinado limiar. Para obter uma visão geral, consulte Visão geral.

No PolarDB for MySQL 8.0.1, os shards de dados são distribuídos para worker threads, que executam a computação paralela e retornam os resultados à leader thread. A leader thread consolida as informações e entrega a saída final.

O PolarDB for MySQL 8.0.2 introduz computação paralela multifásica e otimização baseada em custo. Essa versão supera duas limitações da 8.0.1: o gargalo de desempenho da única leader thread e o desequilíbrio de carga entre os workers. Após a primeira fase de computação paralela, os shards de dados são redistribuídos para um grupo de workers paralelos antes que a leader thread execute a mesclagem final. Tal abordagem melhora a capacidade de aceleração linear e permite planos de execução paralela mais flexíveis.

O diagrama a seguir ilustra o processamento paralelo em um cluster com 8 núcleos e 32 GB de memória.

A PolarDB for MySQL cluster

Ambiente de teste

Item

Detalhes

Especificação do cluster

8 núcleos, 32 GB de memória

Benchmark

TPC-H (22 consultas, Q1–Q22)

Tipo de teste

OLAP

Parâmetros de consulta paralela

As tabelas a seguir listam os valores dos parâmetros usados nos testes OLAP. Para configurar esses parâmetros, consulte Configurar parâmetros de cluster e nó. Para detalhes completos sobre a metodologia de teste, visualize Teste de desempenho para consultas paralelas.

PolarDB for MySQL 8.0.1

Parâmetro

Valor padrão

Valor de teste (opção 1)

loose_parallel_degree_policy

REPLICA_AUTO

TYPICAL

loose_max_parallel_degree

0

16

PolarDB for MySQL 8.0.2

Parâmetro

Valor padrão

Valor de teste (opção 1)

loose_parallel_degree_policy

REPLICA_AUTO

TYPICAL

loose_parallel_query_switch

''

'force_run_using_planning_dop=on'

loose_optimizer_switch

''

'hash_join_cost_based=off'

loose_max_parallel_degree

0

16

Quando loose_parallel_degree_policy está definido como TYPICAL , o PolarDB ignora o uso de recursos do banco de dados (como utilização de CPU) e define o grau de paralelismo (DOP) conforme o valor de loose_max_parallel_degree .

Verifique se a consulta paralela está ativa

Após definir os parâmetros acima, confirme se a consulta realmente usa execução paralela antes de tirar conclusões baseadas nos tempos de resposta. Execute EXPLAIN na consulta desejada e verifique se a coluna Extra contém a anotação Using parallel query:

EXPLAIN SELECT ...;

Se a consulta paralela estiver ativa, a saída incluirá entradas semelhantes a:

| ... | Using where; Using parallel query (4 columns, 1 filters, 1 exprs; 0 extra) |

Caso a anotação esteja ausente, a consulta não usa execução paralela. As causas comuns incluem volume de dados abaixo do limiar de ativação ou padrões de consulta ainda não suportados pelo mecanismo de execução paralela.

Resultados dos testes

Comparação entre versões

A tabela a seguir resume o tempo total de execução das 22 consultas TPC-H. Ela oferece uma visão geral dos ganhos com consulta paralela e da melhoria de desempenho da versão 8.0.1 para a 8.0.2.

Versão

Total padrão (s)

Total paralelo (s)

Aceleração geral

PolarDB 8.0.1

7.735,67

1.940,68

~4,0x

PolarDB 8.0.2

2.931,02

870,03

~3,4x

A configuração padrão da versão 8.0.2 já incorpora melhorias arquiteturais da 8.0.1, motivo pelo qual sua linha de base é significativamente mais rápida. A consulta paralela na 8.0.2 oferece uma taxa de aceleração semelhante sobre sua própria base, com tempos absolutos de consulta substancialmente menores em todos os cenários.

PolarDB for MySQL 8.0.1

Consulta

Padrão (s)

Paralelo (s)

Taxa de aceleração

Q1

2.495,05

86,63

28,8x

Q2

13,18

1,46

9,0x

Q3

345,56

28,67

12,1x

Q4

63,78

6,26

10,2x

Q5

251,48

258,55

1,0x

Q6

241,70

16,40

14,7x

Q7

174,91

171,85

1,0x

Q8

560,82

572,63

1,0x

Q9

450,68

42,17

10,7x

Q10

895,75

270,29

3,3x

Q11

30,03

11,60

2,6x

Q12

266,14

17,65

15,1x

Q13

780,74

127,10

6,1x

Q14

72,04

7,57

9,5x

Q15

261,77

56,55

4,6x

Q16

40,69

24,29

1,7x

Q17

57,75

13,04

4,4x

Q18

257,66

136,79

1,9x

Q19

19,17

1,52

12,6x

Q20

143,97

49,72

2,9x

Q21

293,99

37,79

7,8x

Q22

18,81

2,15

8,7x

PolarDB 8.0.1 TPC-H test results

As consultas Q5, Q7 e Q8 apresentam melhoria mínima ou nula sob a configuração paralela da versão 8.0.1. Esses casos envolvem padrões (como certas agregações entre tabelas e distribuições de junção) que não se beneficiam do modelo de paralelismo da 8.0.1. O PolarDB for MySQL 8.0.2 resolve essas situações por meio da computação paralela multifásica.

PolarDB for MySQL 8.0.2

Consulta

Padrão (s)

Paralelo (s)

Taxa de aceleração

Q1

573,34

89,65

6,4x

Q2

3,62

0,66

5,5x

Q3

96,89

28,52

3,4x

Q4

18,66

6,41

2,9x

Q5

150,93

28,93

5,2x

Q6

68,13

17,13

4,0x

Q7

114,56

17,39

6,6x

Q8

333,36

54,32

6,1x

Q9

136,26

42,15

3,2x

Q10

325,19

128,55

2,5x

Q11

11,49

4,53

2,5x

Q12

121,68

17,54

6,9x

Q13

281,10

126,20

2,2x

Q14

23,34

7,59

3,1x

Q15

77,22

33,02

2,3x

Q16

12,15

8,96

1,4x

Q17

4,51

1,13

4,0x

Q18

325,05

133,07

2,4x

Q19

5,37

1,50

3,6x

Q20

70,31

90,75

0,8x

Q21

171,81

29,87

5,8x

Q22

6,05

2,16

2,8x

PolarDB 8.0.2 TPC-H test results

A consulta Q20 apresentou leve regressão sob a configuração paralela da 8.0.2 neste teste. O desempenho varia conforme a distribuição dos dados e os padrões de junção. Execute testes com sua própria carga de trabalho para validar os resultados do seu caso de uso específico.

Próximos passos