

# Prácticas recomendadas con Amazon Aurora MySQL
<a name="AuroraMySQL.BestPractices"></a><a name="best_practices"></a>

En este tema se proporciona información acerca de las prácticas recomendadas y las opciones para usar o migrar datos en un clúster de base de datos de Amazon Aurora MySQL. La información de este tema resume y reitera algunas de las directrices y procedimientos que puede encontrar en [Administración de un clúster de base de datos de Amazon Aurora](CHAP_Aurora.md).

**Contents**
+ [Determinar a qué instancia de base de datos está conectado](#AuroraMySQL.BestPractices.DeterminePrimaryInstanceConnection)
+ [Prácticas recomendadas de escalado y rendimiento de Aurora MySQL](AuroraMySQL.BestPractices.Performance.md)
  + [Utilización de clases de instancia T para el desarrollo y la prueba](AuroraMySQL.BestPractices.Performance.md#AuroraMySQL.BestPractices.T2Medium)
  + [Optimización de las consultas de combinación indexadas de Aurora MySQL con la captura previa de claves asíncronas](AuroraMySQL.BestPractices.Performance.md#Aurora.BestPractices.AKP)
    + [Habilitación de la captura previa de clave asíncrona](AuroraMySQL.BestPractices.Performance.md#Aurora.BestPractices.AKP.Enabling)
    + [Optimización de consultas para la captura previa de clave asíncrona](AuroraMySQL.BestPractices.Performance.md#Aurora.BestPractices.AKP.Optimizing)
  + [Optimización de grandes consultas combinadas de Aurora MySQL con combinaciones hash](AuroraMySQL.BestPractices.Performance.md#Aurora.BestPractices.HashJoin)
    + [Habilitación de las combinaciones hash](AuroraMySQL.BestPractices.Performance.md#Aurora.BestPractices.HashJoin.Enabling)
    + [Optimización de consultas para combinaciones hash](AuroraMySQL.BestPractices.Performance.md#Aurora.BestPractices.HashJoin.Optimizing)
  + [Uso de Amazon Aurora para escalar las lecturas de una base de datos de MySQL](AuroraMySQL.BestPractices.Performance.md#AuroraMySQL.BestPractices.ReadScaling)
  + [Optimización de las operaciones de marca temporal](AuroraMySQL.BestPractices.Performance.md#AuroraMySQL.BestPractices.Performance.TimeZone)
  + [Errores de desbordamiento de ID de índice virtual](AuroraMySQL.BestPractices.Performance.md#AuroraMySQL.BestPractices.Performance.VirtualIndexIDOverflow)
+ [Prácticas recomendadas para obtener una elevada disponibilidad de Aurora MySQL](AuroraMySQL.BestPractices.HA.md)
  + [Uso de Amazon Aurora para la recuperación de desastres con sus bases de datos de MySQL](AuroraMySQL.BestPractices.HA.md#AuroraMySQL.BestPractices.DisasterRecovery)
  + [Migración de MySQL a Amazon Aurora MySQL con un tiempo de inactividad reducido](AuroraMySQL.BestPractices.HA.md#AuroraMySQL.BestPractices.Migrating)
  + [Prevención del rendimiento lento, el reinicio automático y la conmutación por error de las instancias de base de datos Aurora MySQL](AuroraMySQL.BestPractices.HA.md#AuroraMySQL.BestPractices.Avoiding)
+ [Recomendaciones para características de MySQL en Aurora MySQL](AuroraMySQL.BestPractices.FeatureRecommendations.md)
  + [Uso de la replicación de varios subprocesos en Aurora MySQL](AuroraMySQL.BestPractices.FeatureRecommendations.md#AuroraMySQL.BestPractices.MTReplica)
  + [Invocación de funciones de AWS Lambda mediante funciones de MySQL nativas](AuroraMySQL.BestPractices.FeatureRecommendations.md#AuroraMySQL.BestPractices.Lambda)
  + [Evitar las transacciones de XA con Amazon Aurora MySQL](AuroraMySQL.BestPractices.FeatureRecommendations.md#AuroraMySQL.BestPractices.XA)
  + [Mantenimiento de las claves externas activadas durante las instrucciones DML](AuroraMySQL.BestPractices.FeatureRecommendations.md#Aurora.BestPractices.ForeignKeys)
  + [Configuración de la frecuencia de vaciado del búfer de registro](AuroraMySQL.BestPractices.FeatureRecommendations.md#AuroraMySQL.BestPractices.Flush)
  + [Minimización y solución de problemas de los interbloqueos de Aurora MySQL](AuroraMySQL.BestPractices.FeatureRecommendations.md#AuroraMySQL.BestPractices.deadlocks)
    + [Minimización de interbloqueos de InnoDB](AuroraMySQL.BestPractices.FeatureRecommendations.md#AuroraMySQL.BestPractices.deadlocks-minimize)
    + [Supervisión de interbloqueos de InnoDB](AuroraMySQL.BestPractices.FeatureRecommendations.md#AuroraMySQL.BestPractices.deadlocks-monitor)
+ [Evaluación de la utilización de instancias de base de datos para Aurora MySQL con métricas de Amazon CloudWatch](AuroraMySQL.BestPractices.CW.md)

## Determinar a qué instancia de base de datos está conectado
<a name="AuroraMySQL.BestPractices.DeterminePrimaryInstanceConnection"></a>

Puede determinar a qué instancia de base de datos un clúster de base de datos Aurora MySQL está conectado comprobando la variable global `innodb_read_only`, como se muestra en el siguiente ejemplo.

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

La variable `innodb_read_only` se establece en `ON` si está conectado a una instancia de base de datos de lector. Este ajuste estará en `OFF` si está conectado a una instancia de base de datos de escritor, como, por ejemplo, la instancia principal de un clúster aprovisionado.

Este método puede resultar útil si se desea añadir lógica al código de la aplicación para equilibrar la carga de trabajo o para garantizar que una operación de escritura utilice la conexión correcta.