Otimizar a consulta paralela no Aurora MySQL - Amazon Aurora

Otimizar a consulta paralela no Aurora MySQL

Para otimizar o cluster de banco de dados para consulta paralela, pense em quais clusters de banco de dados se beneficiariam da consulta paralela e se você deveria fazer a atualização para a consulta paralela. Depois, ajuste a workload e crie objetos de esquema para consulta paralela.

Planejar um cluster de consulta paralela

A ação de planejar um cluster de banco de dados com consulta paralela habilitada requer algumas escolhas. Isso inclui a realização de etapas de configuração (criar ou restaurar um cluster do Aurora MySQL completo) e a decisão da extensão da habilitação da consulta paralela no cluster de banco de dados.

Considere o seguinte como parte do planejamento:

  • Se você usar o Aurora MySQL compatível com o MySQL 5.7, escolha o Aurora MySQL 2.09 ou posterior. Nesse caso, você sempre cria um cluster provisionado. Em seguida, habilite a consulta paralela utilizando o parâmetro aurora_parallel_query.

    Se você tiver um cluster do Aurora MySQL que esteja executando a versão 2.09 ou posterior, não precisará criar outro cluster para usar a consulta paralela. É possível associar o cluster, ou instâncias de banco de dados específicas no cluster, a um grupo de parâmetros que tenha o parâmetro aurora_parallel_query habilitado. Ao fazer isso, é possível reduzir o tempo e o esforço para configurar os dados relevantes a serem usados com a consulta paralela.

  • Planeje todas as tabelas grandes que você precisa reorganizar para que possa usar a consulta paralela ao acessá-las. Talvez seja necessário criar versões de algumas tabelas grandes nas quais a consulta paralela é útil. Por exemplo, talvez seja necessário remover índices de pesquisa de texto completo. Para obter mais detalhes, consulte Criar objetos de esquema que aproveitem a consulta paralela.

Verificar se a versão do Aurora MySQL é compatível com a consulta paralela

Para verificar quais versões do Aurora MySQL são compatíveis com clusters de consulta paralela, use o comando describe-db-engine-versions da AWS CLI e verifique o valor do campo SupportsParallelQuery. O exemplo de código a seguir mostra como verificar quais combinações estão disponíveis para clusters de consulta paralela em uma região da AWS especificada. Especifique a string completa do parâmetro --query em uma única linha.

aws rds describe-db-engine-versions --region us-east-1 --engine aurora-mysql \ --query '*[]|[?SupportsParallelQuery == `true`].[EngineVersion]' --output text

Os comandos anteriores produzem uma saída semelhante à seguinte. A saída pode variar, dependendo de quais versões do Aurora MySQL estão disponíveis na região da AWS especificada.

5.7.mysql_aurora.2.11.1 8.0.mysql_aurora.3.01.0 8.0.mysql_aurora.3.01.1 8.0.mysql_aurora.3.02.0 8.0.mysql_aurora.3.02.1 8.0.mysql_aurora.3.02.2 8.0.mysql_aurora.3.03.0

Após começar a usar a consulta paralela com um cluster, você pode monitorar a performance e remover obstáculos ao uso da consulta paralela. Para obter essas instruções, consulte Ajuste de performance da consulta paralela.

Considerações sobre atualização para consultas paralelas

Dependendo das versões original e de destino ao fazer o upgrade de um cluster de consulta paralela, você pode perceber melhorias nos tipos de consultas que a consulta paralela é capaz de otimizar. Você também pode descobrir que não é necessário especificar um parâmetro de modo de mecanismo especial para a consulta paralela. As seções a seguir explicam as considerações ao fazer upgrade de um cluster com a consulta paralela habilitada.

Fazer upgrade de clusters de consulta paralela para o Aurora MySQL versão 3

Várias instruções, cláusulas e tipos de dados SQL incluem suporte novo ou avançado para consulta paralela começando com o Aurora MySQL versão 3. Ao fazer upgrade de uma versão anterior à versão 3, verifique se consultas adicionais podem se beneficiar com otimizações de consultas paralelas. Para obter informações sobre essas melhorias de consulta paralela, consulte Tipos de dados de coluna,Tabelas particionadas e Funções agregadas, cláusulas GROUP BY e cláusulas HAVING..

Se estiver fazendo upgrade de um cluster de consulta paralela do Aurora MySQL 2.08 ou versão inferior, informe-se também sobre as mudanças em como habilitar a consulta paralela. Para isso, leia Fazer upgrade para o Aurora MySQL 2.09 e versões posteriores.

No Aurora MySQL versão 3, a otimização de junções de hash está habilitada por padrão. A opção de configuração aurora_disable_hash_join de versões anteriores não é utilizada.

Fazer upgrade para o Aurora MySQL 2.09 e versões posteriores

No Aurora MySQL versão 2.09 e posteriores, a consulta paralela funciona para clusters provisionados e não requer o parâmetro parallelquery do modo de mecanismo. Assim, você não precisa criar um cluster nem restaurar de um snapshot existente para usar a consulta paralela com essas versões. Você pode usar os procedimentos de atualização descritos em Atualizando a versão secundária ou o nível de patch de um cluster de banco de dados de Aurora MySQL a fim de atualizar o cluster para essa versão. Você pode atualizar um cluster mais antigo, independentemente de se tratar de um cluster de consulta paralela ou de um cluster provisionado. Para reduzir o número de opções no menu Engine version (Versão do mecanismo) você pode selecionar Show versions that support the parallel query feature (Mostrar versões que oferecem suporte ao recurso de consulta paralela) para filtrar as entradas nesse menu. Depois, escolha o Aurora MySQL 2.09 ou posteriores.

Depois de fazer upgrade de um cluster de consulta paralela anterior para o Aurora MySQL 2.09 ou versão posterior, habilite a consulta paralela no cluster atualizado. A consulta paralela é desativada por padrão nessas versões e o procedimento para habilitá-la é diferente. A otimização de junções de hash também está desabilitada por padrão e deve ser habilitada separadamente. Por isso, certifique-se de habilitar essas configurações novamente após o upgrade. Para obter instruções sobre como fazer isso, consulte Ativar e desativar a consulta paralela no Aurora MySQL e Habilitar a junção de hash para clusters de consulta paralela.

Em particular, você habilita consulta paralela utilizando os parâmetros de configuração aurora_parallel_query=ON e aurora_disable_hash_join=OFF em vez de aurora_pq_supported e aurora_pq. Os parâmetros aurora_pq_supported e aurora_pq é compatível com atualizações nas versões mais recentes do Aurora MySQL.

No cluster atualizado, o atributo EngineMode tem o valor provisioned em vez de parallelquery. Para verificar se a consulta paralela está disponível para uma versão de mecanismo especificada, agora você confere o valor do campo SupportsParallelQuery na saída do comando describe-db-engine-versions da AWS CLI. Em versões anteriores do Aurora MySQL, você verificou a presença de parallelquery na lista SupportedEngineModes.

Depois de fazer upgrade para o Aurora MySQL 2.09 ou versão posterior, você poderá aproveitar os recursos a seguir. Esses recursos não estão disponíveis para clusters de consulta paralela que executam versões mais antigas do Aurora MySQL.

Ajuste de performance da consulta paralela

Para gerenciar a performance de uma workload com consulta paralela, verifique se a consulta paralela é usada em consultas em que a otimização é mais útil.

Para isso, você pode fazer o seguinte:

Criar objetos de esquema que aproveitem a consulta paralela

Antes de criar ou modificar tabelas que você planeja usar para consulta paralela, conheça os requisitos descritos em Pré-requisitos e Limitações.

Como a consulta paralela exige que as tabelas usem a configuração ROW_FORMAT=Compact ou ROW_FORMAT=Dynamic, verifique as definições de configurações do Aurora para saber se houve alguma alteração na opção de configuração INNODB_FILE_FORMAT. Execute a instrução SHOW TABLE STATUS para confirmar o formato da linha de todas as tabelas do banco de dados.

Antes de alterar seu esquema para permitir que a consulta paralela funcione com mais tabelas, não deixe de fazer testes. Os testes devem confirmar se a consulta paralela resulta em um aumento líquido na performance dessas tabelas. Além disso, certifique-se de que os requisitos do esquema para a consulta paralela são compatíveis com as suas metas.

Por exemplo, antes de mudar de ROW_FORMAT=Compressed para ROW_FORMAT=Compact ou ROW_FORMAT=Dynamic, teste a performance das cargas de trabalho das tabelas originais e novas. Considere também outros efeitos possíveis, como o aumento do volume de dados.