Prácticas recomendadas

En esta página, se proporcionan las prácticas recomendadas para obtener rendimiento, durabilidad y disponibilidad óptimos de Cloud SQL.

Si se producen problemas con tu instancia de Cloud SQL, revisa lo siguiente cuando trates de solucionarlos:

Configuración y administración de instancia

Práctica recomendada Más información
Lee y sigue los lineamientos operativos para asegurarte de que tus instancias estén cubiertas por el ANS de Cloud SQL.
Configura un período de mantenimiento para tu instancia principal a fin de controlar cuándo pueden ocurrir las actualizaciones con interrupciones. Consulta Período de mantenimiento.
Para cargas de trabajo con alto contenido de lectura, agrega réplicas de lectura con el objetivo de aliviar el tráfico de la instancia principal. De forma opcional, puedes usar un balanceador de cargas, como HAProxy para gestionar el tráfico hacia las réplicas.
Si borras y vuelves a crear instancias con regularidad, usa una marca de tiempo en el ID de instancia para aumentar la probabilidad de que puedan usarse ID de instancia nuevos. No puedes volver a utilizar el ID de una instancia borrada durante algunos días después de que esta haya sido borrada.
No inicies una operación administrativa antes de que haya finalizado la operación anterior.

Las instancias de Cloud SQL no aceptan una solicitud de operación nueva hasta haber completado la operación anterior. Si intentas iniciar una operación nueva de forma prematura, fallará la solicitud de operación. Esto incluye reinicios de la instancia.

El estado de la instancia en Cloud Console no refleja si una operación se está ejecutando. La marca de verificación verde solo indica que la instancia está en estado RUNNABLE. Para verificar si hay una operación en ejecución, ve a la pestaña Operaciones y verifica el estado de la operación más reciente.

Limpia las tablas del sistema después de las actualizaciones. Las tablas del sistema MySQL (por ejemplo, mysql.user o mysql.db) usan el motor de almacenamiento MyISAM. Estas tablas son vulnerables a cierres poco claros. Ejecuta el comando FLUSH CHANGES después de realizar un cambio en ellas, como agregar o actualizar un usuario mediante el cliente MySQL. Si se produce un daño en MyISAM y la instancia puede reiniciarse, puedes usar los comandos CHECK TABLE y REPAIR TABLE para intentar solucionar el daño, pero puede que el contenido de la tabla no sea correcto.

Arquitectura de datos

Práctica recomendada Más información
Fragmenta tus instancias cuando sea posible. Siempre que sea posible, el uso de varias instancias más pequeñas de Cloud SQL es mejor que usar una instancia grande. Gestionar una instancia grande y monolítica presenta desafíos que no ocurren con una mayor cantidad de instancias más pequeñas.
No uses demasiadas tablas de base de datos.

Demasiadas tablas de base de datos pueden afectar el tiempo de respuesta de la instancia. Más de 10,000 tablas afectan la cobertura de ANS. Consulta Lineamientos operativos para obtener más información.

Asegúrate de que tus tablas tengan una clave principal o única. Cloud SQL usa la replicación basada en filas, que funciona mejor con tablas que tienen claves principales o únicas.

Implementación de aplicaciones

Práctica recomendada Más información
Implementa prácticas adecuadas de administración de la conexión, como agrupación de conexiones y retirada exponencial. El uso de estas técnicas mejora el uso de los recursos de tu aplicación y te ayuda a mantenerte dentro de los límites de conexión de Cloud SQL. Para obtener más información y ejemplos de códigos, consulta la página Administra conexiones de bases de datos.
Verifica la respuesta de tu aplicación a las actualizaciones de mantenimiento, que pueden ocurrir en cualquier momento durante el período de mantenimiento. Cambiar el tipo de máquina de una instancia es la aproximación más cercana a una actualización de mantenimiento. La única diferencia es que, durante una actualización de mantenimiento, primero se actualiza la réplica de conmutación por error (y se queda sin conexión) y, luego, se actualiza la instancia principal (y se queda sin conexión) después de que la actualización de la réplica se completa. Para los cambios de tipo de máquina, la instancia principal se queda sin conexión antes que la réplica. Asegúrate de que la aplicación intente volver a conectarse a la base de datos, preferentemente con una retirada exponencial durante al menos 10 minutos para garantizar que la aplicación reanude su funcionamiento luego de un evento de mantenimiento. Para obtener más información, consulta la sección sobre cómo administrar conexiones de bases de datos.
Verifica la respuesta de tu aplicación a las conmutaciones por error, que pueden ocurrir en cualquier momento. Puedes iniciar una conmutación por error de forma manual con Cloud Console, la herramienta de línea de comandos de gcloud o la API. Consulta Inicia la conmutación por error.
Evita las transacciones grandes. Mantén las transacciones pequeñas y cortas. Si se requiere una actualización grande de la base de datos, hazla en varias transacciones más pequeñas en lugar de en una transacción grande.
Si usas el proxy de autenticación de Cloud SQL, asegúrate de usar la versión más reciente. Consulta Mantén el proxy de autenticación de Cloud SQL actualizado.

Importación y exportación de datos

Práctica recomendada Más información
Acelera las importaciones para tamaños de instancia más pequeños. Para las instancias pequeñas, puedes aumentar temporalmente la CPU y la RAM de una instancia a fin de mejorar el rendimiento cuando importas conjuntos de datos grandes.
Si exportas datos para importarlos a Cloud SQL, asegúrate de usar el procedimiento adecuado. Consulta Exporta datos desde un servidor de base de datos administrado de forma externa.
Acelera las importaciones mediante el uso del comando mysqldump cuando exportas. Si usas la utilidad mysqldump para exportar datos y, luego, importarlos en Cloud SQL, considera estas opciones:
  • Inhabilita la confirmación automática y une el archivo o tabla en una transacción única mediante la opción --single-transaction.
  • Incluye varias filas en cada instrucción INSERT mediante la opción --extended-insert (activada de forma predeterminada).
Cuando migres datos mediante una importación o exportación, usa el mismo modo de SQL para ambas operaciones. Consulta Usa el mismo modo de SQL para importar y exportar.

Copia de seguridad y recuperación

Práctica recomendada Más información
Protege tus datos con la función de Cloud SQL adecuada.

Las copias de seguridad, la recuperación de un momento determinado y las exportaciones son formas de proporcionar redundancia y protección de datos. Cada una brinda protección frente a situaciones diferentes y se complementan en una estrategia sólida de protección de datos.

Las copias de seguridad son livianas; proporcionan una forma de restablecer los datos en tu instancia al estado en el que se encontraban cuando se creó la copia de seguridad. Sin embargo, las copias de seguridad tienen algunas limitaciones. Si borras la instancia, también se borrarán las copias de seguridad. No puedes realizar una copia de seguridad de una sola tabla o base de datos. Si la región donde se encuentra la instancia no está disponible, no podrás restablecer la instancia desde esa copia de seguridad, incluso en una región disponible.

Con la recuperación de un momento determinado, puedes recuperar una instancia tal como se encontraba en un punto específico en el tiempo. Por ejemplo, si un error provoca una pérdida de datos, puedes recuperar el estado de una base de datos antes de que se produzca el error. Una recuperación de un momento determinado siempre crea una instancia nueva. No puedes realizar una recuperación de un momento determinado en una instancia existente.

Las exportaciones toman más tiempo para crearse porque se genera un archivo externo en Cloud Storage que puede usarse a fin de recrear tus datos. Las exportaciones no se ven afectadas si borras la instancia. Además, puedes exportar solo una base de datos única o incluso una tabla, según el formato de exportación que elijas.

Ajusta el tamaño de las instancias para que se tomen en cuenta la retención del registro de transacciones. La actividad de escritura alta en la base de datos puede generar un gran volumen de registros de transacciones, que a, su vez, puede consumir un espacio de disco significativo y provocar el crecimiento del disco para instancias habilitadas a fin de aumentar el almacenamiento de forma automática. Recomendamos que ajustes el tamaño del almacenamiento de la instancia para tener en cuenta la retención del registro de transacciones.