Todos os produtos
Search
Central de documentação

PolarDB:Use elastic parallel query (ePQ)

Última atualização: Aug 13, 2026

Saiba como ativar, configurar e controlar o ePQ no PolarDB for MySQL, incluindo limiares de execução paralela, sintaxe de hints e limites conhecidos.

Antes de começar

  • Verifique se o seu cluster oferece suporte à consulta paralela elástica.

    • Consulta paralela elástica de nó único:

      • Mecanismo de banco de dados: 8.0.1 com versão de revisão 8.0.1.0.5 ou posterior.

      • Edição do banco de dados: Enterprise Edition .

    • Consulta paralela elástica de nó único:

      • Mecanismo de banco de dados: 8.0.2 com versão de revisão 8.0.2.1.4.1 ou posterior.

      • Edição do banco de dados: Enterprise Edition.

    • Consulta paralela elástica de vários nós:

      • Mecanismo de banco de dados: 8.0.2 com versão de revisão 8.0.2.2.6 ou posterior.

      • Edição do banco de dados: Enterprise Edition.

  • Revise Limits and compatibility issues antes de ativar a consulta paralela.

  • Os nós somente leitura e RW oferecem suporte à consulta paralela, mas ela vem desativada por padrão nos nós RW. Para ativá-la nesses nós, Adaptively adjust the degree of parallelism.

Ativar ou desativar a consulta paralela

Ativar

Acesse o PolarDB console. Na página Basic Information do cluster, localize a seção Database Connection. Selecione o endpoint desejado e clique em Configure. Na caixa de diálogo Edit Endpoint Configuration, enable a consulta paralela e configure o Degree of Parallelism.

Clique para expandir as etapas detalhadas

  1. Faça login no console do PolarDB. No painel de navegação à esquerda, clique em Clusters. Selecione a região onde o cluster está localizado e clique no ID do cluster para acessar a página de detalhes.

  2. Na página Basic Information do cluster, localize a seção Database Connection. Selecione o endpoint desejado e clique em Configure.image

  3. Na caixa de diálogo Edit Endpoint Configuration, enable a consulta paralela e configure o Degree of Parallelism. Outros parâmetros de endpoint estão documentados em Configure a database proxy.imageimage

Configurações recomendadas e observações:

  • O Degree of Parallelism define o número máximo de threads de trabalho que uma única consulta pode usar em um nó de computação. O total de threads por consulta equivale ao Degree of Parallelism multiplicado pelo número de nós.

  • Aumente o grau de paralelismo gradualmente. Não ultrapasse um quarto dos núcleos de CPU. Comece com 2. Após um dia, aumente o valor se a carga da CPU permanecer baixa; interrompa o aumento caso ela suba.

  • A ativação da consulta paralela entra em vigor apenas para novas conexões.

  • As configurações do console e os parâmetros do cluster interagem da seguinte forma:

    • O parâmetro loose_max_parallel_degree aplica-se a todos os nós e conexões do cluster, mas os ajustes feitos no console aplicam-se apenas ao endpoint configurado.

    • Se tanto a configuração do console quanto o parâmetro loose_max_parallel_degree estiverem definidos, a configuração do console terá precedência. Use o console para ativar a parallel query.

    • Caso a parallel query não esteja ativada no console, mas o parâmetro loose_max_parallel_degree esteja definido acima de 0, a consulta paralela de nó único será ativada por padrão.

    Nota

    O parâmetro loose_max_parallel_degree define o número máximo de threads de trabalho para a execução paralela de uma única consulta. Parameter description.

Desativar

Acesse o PolarDB console. Na página Basic Information do cluster, localize a seção Database Connection. Selecione o endpoint desejado e clique em Configure. Na caixa de diálogo Edit Endpoint Configuration, disable a consulta paralela.

Clique para expandir as etapas detalhadas

  1. Faça login no console do PolarDB. No painel de navegação à esquerda, clique em Clusters. Selecione a região onde o cluster está localizado e clique no ID do cluster para acessar a página de detalhes.

  2. Na página Basic Information do cluster, localize a seção Database Connection. Selecione o endpoint desejado e clique em Configure.image

  3. Na caixa de diálogo Edit Endpoint Configuration, disable a consulta paralela.image

Observação:

  • A desativação da consulta paralela entra em vigor apenas para novas conexões.

  • Após desativar a consulta paralela no console, verifique se o parâmetro loose_max_parallel_degree também está definido como 0.

    Nota

    O parâmetro loose_max_parallel_degree define o número máximo de threads de trabalho para a execução paralela de uma única consulta. Parameter description.

Configurar a consulta paralela

O PolarDB oferece diversas políticas de controle para consulta paralela, resumidas abaixo. A lista completa está disponível em Configure parallel resource control policies.

Tipo

Descrição

Limiares de execução paralela do otimizador

O PolarDB fornece dois limiares. O otimizador considera um plano paralelo quando uma consulta excede qualquer um deles.

  • loose_records_threshold_for_parallelism

    Quando a contagem estimada de varredura de uma tabela excede este limiar, o otimizador considera um plano paralelo. Padrão: 10000. Para conjuntos de dados pequenos ou baixa concorrência de consultas, defina como 2000 ou mais.

    Nota

    A contagem de varredura é uma estimativa baseada nas estatísticas da tabela e pode não ser exata.

  • loose_cost_threshold_for_parallelism

    Quando o custo estimado de execução sequencial excede este limiar, o otimizador considera um plano paralelo. Padrão: 50000.

Limiares de dimensionamento paralelo de vários nós

O PolarDB fornece dois limiares para dimensionamento paralelo de vários nós. O sistema escala horizontalmente quando qualquer um deles é excedido.

  • loose_records_threshold_for_mpp

    Quando a contagem estimada de varredura de uma tabela excede este limiar, o otimizador passa de paralelo de nó único para vários nós. By default, this value is N times the value of loose_records_threshold_for_parallelism, where N is the number of nodes within the current cluster endpoint.

  • loose_cost_threshold_for_mpp

    Quando o custo de execução sequencial de uma consulta excede este limiar, o otimizador passa para paralelo de vários nós. By default, this value is N times the value of loose_cost_threshold_for_parallelism, where N is the number of nodes within the current cluster endpoint.

Controlar a consulta paralela com hints

Os hints controlam a execução paralela no nível da instrução, permitindo substituir o comportamento padrão, definir o grau de paralelismo e especificar quais tabelas devem ser paralelizadas. Por exemplo, use um hint para acelerar uma consulta lenta específica. A sintaxe completa está documentada em Parallel query hint syntax.

Posso usar hints para ativar a consulta paralela em um endpoint primário de cluster do PolarDB?

Sim, mas recomenda-se usar o PolarDB console. Para controle no nível da instrução, use /*+ PARALLEL(n) */ ou /*+ SET_VAR(max_parallel_degree=n) */ para definir o grau de paralelismo como n. Os dois hints diferem da seguinte forma:

  • /*+ PARALLEL(n) */ força a execução paralela independentemente do tipo de nó ou do volume de dados.

  • /*+ SET_VAR(max_parallel_degree=n) */ ativa a execução paralela apenas se a consulta for roteada para um nó somente leitura e as estimativas de custo e volume do otimizador justificarem essa ação.

Existe conflito entre parâmetros paralelos definidos por hints em uma instrução SQL e as configurações no console?

Não. Os parâmetros de hint aplicam-se apenas à instrução atual e substituem as configurações globais do console.

Limites e problemas de compatibilidade

Limites

A execução paralela do PolarDB apresenta as seguintes limitações:

  • Consultas em tabelas que não são InnoDB não podem ser executadas em paralelo.

  • Consultas que utilizam índice full-text não podem ser executadas em paralelo.

  • Expressões que contêm Procedures armazenadas devem ser executadas no nó líder.

  • Se uma tabela for verificada usando Index Merge, a varredura da tabela não poderá ser paralelizada.

  • Instruções de consulta dentro de transações com nível de isolamento serializable não podem ser executadas em paralelo.

  • Se o nível de isolamento for Repeatable-read, a parte de consulta das instruções INSERT ... SELECT/REPLACE ... SELECT dentro de uma transação não poderá ser executada em paralelo.

Compatibilidade

  • A quantidade de mensagens de erro pode mudar

    Para uma consulta que retorna um erro durante a execução sequencial, o número total de mensagens de erro pode diferir durante a execução paralela.

  • Problemas de precisão

    A execução paralela pode armazenar mais resultados intermediários de ponto flutuante, causando pequenas diferenças de precisão na saída final.

  • Pacote de rede ou resultado intermediário excede max_allowed_packet****

    A execução paralela pode gerar resultados intermediários maiores. Se o tamanho de um pacote de rede ou resultado intermediário exceder max_allowed_packet, poderá ocorrer um erro. Aumente o parâmetro max_allowed_packet para resolver isso. Set cluster parameters and node parameters.

  • Diferenças na ordem do conjunto de resultados

    Uma instrução SELECT ... LIMIT n sem cláusula ORDER BY pode retornar linhas em ordem diferente durante a execução paralela, pois vários workers concluem suas tarefas em velocidades distintas.

  • A contagem de bloqueios de linha pode aumentar

    Durante a execução paralela de SELECT ... FROM ... FOR SHARE, o InnoDB bloqueia todas as linhas acessadas. A contagem de bloqueios de linha pode ser maior do que na execução sequencial.

Perguntas frequentes

Depois de ativar a consulta paralela, todas as consultas serão aceleradas em paralelo?

Nem todas as consultas são executadas em paralelo. Os seguintes casos retornam à execução sequencial:

  • O tipo de consulta não é suportado. Limits.

  • O volume de varredura ou o custo da consulta está abaixo do limiar definido por loose_records_threshold_for_parallelism e loose_cost_threshold_for_parallelism.

  • A carga de recursos do cluster está muito alta. System resource control policies.

Depois de ativar a consulta paralela, por que a sintaxe de hint não entra em vigor?

Verifique os seguintes pontos:

  • As alterações na consulta paralela entram em vigor apenas em novas conexões. Reconecte-se ao cluster.

  • A consulta paralela é desativada por padrão nos nós RW. Use o endpoint do cluster em vez do endpoint primário. Configure parallel resource control policies.