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.
Sumário
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.
-
Performance Insights. Para ter mais informações, consulte Monitorar a carga de banco de dados com o Performance Insights no Amazon Aurora.
-
Retroceder. Para ter mais informações, consulte Retroceder um cluster de banco de dados Aurora.
-
Interromper e iniciar o cluster. Para ter mais informações, consulte Interromper e iniciar um cluster de banco de dados do Amazon Aurora.
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:
-
As tabelas maiores devem ser compatíveis com a consulta paralela. Você pode alterar as propriedades da tabela ou recriar algumas tabelas para que as consultas delas possam aproveitar a otimização da consulta paralela. Para saber como, consulte Criar objetos de esquema que aproveitem a consulta paralela.
-
Monitore quais são as consultas que usam a consulta paralela. Para saber como, consulte Monitorar a consulta paralela do Aurora MySQL.
-
Verifique se a consulta paralela está sendo usada para as consultas mais intensas e de longa execução e com o nível certo de simultaneidade para a workload. Para saber como, consulte Verificar quais declarações usam consulta paralela para Aurora MySQL.
-
Adapte seu código SQL para permitir que a consulta paralela seja aplicada às consultas esperadas. Para saber como, consulte Constructos do SQL para consulta paralela no Aurora MySQL.
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.