

# Melhores práticas do Amazon Aurora MySQL
<a name="AuroraMySQL.BestPractices"></a><a name="best_practices"></a>

Este tópico inclui informações sobre as melhores práticas e opções para usar ou migrar dados para um cluster de banco de dados Amazon Aurora MySQL. As informações neste tópico resumem e reiteram algumas das diretrizes e procedimentos que você pode encontrar em [Como gerenciar um cluster de banco de dados do Amazon Aurora](CHAP_Aurora.md).

**Contents**
+ [Como determinar a qual instância de banco de dados você está conectado](#AuroraMySQL.BestPractices.DeterminePrimaryInstanceConnection)
+ [Práticas recomendadas para a performance e escalabilidade do Aurora MySQL](AuroraMySQL.BestPractices.Performance.md)
  + [Uso de classes de instância T para desenvolvimento e testes](AuroraMySQL.BestPractices.Performance.md#AuroraMySQL.BestPractices.T2Medium)
  + [Otimizar consultas de junção indexadas do Aurora MySQL com pré-busca de chave assíncrona](AuroraMySQL.BestPractices.Performance.md#Aurora.BestPractices.AKP)
    + [Como habilitar a pré-busca de chave assíncrona](AuroraMySQL.BestPractices.Performance.md#Aurora.BestPractices.AKP.Enabling)
    + [Como otimizar consultas de pré-busca de chave assíncrona](AuroraMySQL.BestPractices.Performance.md#Aurora.BestPractices.AKP.Optimizing)
  + [Otimizando grandes consultas de junção do Aurora MySQL com junções hash](AuroraMySQL.BestPractices.Performance.md#Aurora.BestPractices.HashJoin)
    + [Permitir hash joins](AuroraMySQL.BestPractices.Performance.md#Aurora.BestPractices.HashJoin.Enabling)
    + [Otimizar consultas para hash joins](AuroraMySQL.BestPractices.Performance.md#Aurora.BestPractices.HashJoin.Optimizing)
  + [Como usar o Amazon Aurora para escalar leituras para seu banco de dados MySQL](AuroraMySQL.BestPractices.Performance.md#AuroraMySQL.BestPractices.ReadScaling)
  + [Otimizando as operações de carimbo de data/hora](AuroraMySQL.BestPractices.Performance.md#AuroraMySQL.BestPractices.Performance.TimeZone)
  + [Erros de estouro de ID de índice virtual](AuroraMySQL.BestPractices.Performance.md#AuroraMySQL.BestPractices.Performance.VirtualIndexIDOverflow)
+ [Práticas recomendadas para alta disponibilidade do Aurora MySQL](AuroraMySQL.BestPractices.HA.md)
  + [Como utilizar o Amazon Aurora para recuperação de desastres com seus bancos de dados MySQL](AuroraMySQL.BestPractices.HA.md#AuroraMySQL.BestPractices.DisasterRecovery)
  + [Migrar do MySQL para o Amazon Aurora MySQL com o tempo de inatividade reduzido](AuroraMySQL.BestPractices.HA.md#AuroraMySQL.BestPractices.Migrating)
  + [Evitar baixa performance, reinicialização automática e failover para instâncias de banco de dados do Aurora MySQL](AuroraMySQL.BestPractices.HA.md#AuroraMySQL.BestPractices.Avoiding)
+ [Recomendações para recursos do MySQL no Aurora MySQL](AuroraMySQL.BestPractices.FeatureRecommendations.md)
  + [Utilizar a replicação de vários threads no Aurora MySQL](AuroraMySQL.BestPractices.FeatureRecommendations.md#AuroraMySQL.BestPractices.MTReplica)
  + [Invocar funções do AWS Lambda com o uso de funções nativas do MySQL](AuroraMySQL.BestPractices.FeatureRecommendations.md#AuroraMySQL.BestPractices.Lambda)
  + [Como evitar transações XA com o Amazon Aurora MySQL](AuroraMySQL.BestPractices.FeatureRecommendations.md#AuroraMySQL.BestPractices.XA)
  + [Como manter chaves externas ativadas durante instruções DML](AuroraMySQL.BestPractices.FeatureRecommendations.md#Aurora.BestPractices.ForeignKeys)
  + [Configurar a frequência com que o buffer de log é liberado](AuroraMySQL.BestPractices.FeatureRecommendations.md#AuroraMySQL.BestPractices.Flush)
  + [Minimizar e solucionar problemas de deadlocks do Aurora MySQL](AuroraMySQL.BestPractices.FeatureRecommendations.md#AuroraMySQL.BestPractices.deadlocks)
    + [Minimizar os deadlocks do InnoDB](AuroraMySQL.BestPractices.FeatureRecommendations.md#AuroraMySQL.BestPractices.deadlocks-minimize)
    + [Monitorar deadlocks do InnoDB](AuroraMySQL.BestPractices.FeatureRecommendations.md#AuroraMySQL.BestPractices.deadlocks-monitor)
+ [Avaliação do uso de instâncias de banco de dados para Aurora MySQL com métricas do Amazon CloudWatch](AuroraMySQL.BestPractices.CW.md)

## Como determinar a qual instância de banco de dados você está conectado
<a name="AuroraMySQL.BestPractices.DeterminePrimaryInstanceConnection"></a>

Para determinar a qual instância de banco de dados dentro de um cluster de banco de dados Aurora MySQL uma conexão está conectada, verifique a variável global `innodb_read_only`, conforme mostrado no exemplo a seguir.

```
SHOW GLOBAL VARIABLES LIKE 'innodb_read_only'; 
```

Se você estiver conectado a uma instância de banco de dados de leitor, a variável `innodb_read_only` será definida como `ON`. Se você estiver conectado a uma instância de banco de dados de gravador, como, por exemplo, uma instância primária em um cluster provisionado, essa configuração será `OFF`.

Essa abordagem pode ser útil se você quiser adicionar lógica ao seu código de aplicação para equilibrar a workload ou para garantir que uma operação de gravação esteja usando a conexão correta.