Esta página proporciona las mejores prácticas y ejemplos de código específicos del lenguaje para ayudarlo a crear aplicaciones que utilicen conexiones de base de datos de Cloud SQL de manera eficaz.
Estos ejemplos son extractos de una aplicación web completa disponible en GitHub. Más información .
Para obtener instrucciones paso a paso sobre cómo ejecutar una aplicación web de muestra conectada a Cloud SQL, siga el enlace correspondiente a su entorno:
- Inicio rápido para conectarse desde su computadora local
- Inicio rápido para conectarse desde Compute Engine
- Inicio rápido para conectarse desde Cloud Run
- Inicio rápido para conectarse desde las funciones de Cloud Run
- Inicio rápido para conectarse desde Google Kubernetes Engine
Grupos de conexiones
Un pool de conexiones es un caché de conexiones de base de datos que se comparten y reutilizan para mejorar la latencia y el rendimiento de la conexión. Cuando la aplicación necesita una conexión de base de datos, toma prestada una de su pool temporalmente; al finalizar la conexión, la devuelve al pool, donde puede reutilizarse la próxima vez que la aplicación necesite una conexión de base de datos.
Abrir y cerrar conexiones
Al usar un pool de conexiones, debe abrir y cerrar las conexiones correctamente para que siempre se devuelvan al pool al terminar de usarlas. Las conexiones no devueltas o filtradas no se reutilizan, lo que desperdicia recursos y puede causar cuellos de botella en el rendimiento de la aplicación.
Pitón
Java
Node.js
DO#
Ir
Rubí
PHP
Recuento de conexiones
Cada conexión a la base de datos utiliza recursos del cliente y del servidor. Además, Cloud SQL impone límites de conexión generales que no se pueden superar. Crear y usar menos conexiones reduce la sobrecarga y le ayuda a mantenerse por debajo del límite de conexión.
Pitón
Java
Node.js
DO#
Ir
Rubí
PHP
Actualmente, PDO no ofrece ninguna funcionalidad para configurar límites de conexión.
Retroceso exponencial
Si su aplicación intenta conectarse a la base de datos sin éxito, esta podría quedar temporalmente indisponible. En este caso, enviar solicitudes de conexión repetidas desperdicia recursos. Es preferible esperar antes de enviar solicitudes de conexión adicionales para que la base de datos vuelva a estar accesible. El uso de un retardo exponencial u otro mecanismo de retardo permite lograr este objetivo.
Este reintento solo tiene sentido al conectar por primera vez o al obtener una conexión del pool. Si se producen errores durante una transacción, la aplicación debe reintentar desde el principio. Por lo tanto, incluso si el pool está configurado correctamente, la aplicación podría seguir detectando errores si se pierden las conexiones.
Pitón
Java
Node.js
DO#
Ir
El paquete database/sql actualmente no ofrece ninguna funcionalidad para configurar el retroceso exponencial.
Rubí
PHP
Actualmente, PDO no ofrece ninguna funcionalidad para configurar el retroceso exponencial.
Tiempo de espera de conexión
Hay muchas razones por las que un intento de conexión podría no tener éxito. La comunicación de red nunca está garantizada y la base de datos podría no responder temporalmente. Asegúrese de que su aplicación gestione correctamente las conexiones interrumpidas o fallidas.
Pitón
Java
Node.js
DO#
Ir
El paquete database/sql actualmente no ofrece ninguna función para configurar el tiempo de espera de la conexión. Este tiempo se configura a nivel del controlador.
Rubí
PHP
Duración de la conexión
Limitar la duración de una conexión puede ayudar a evitar la acumulación de conexiones abandonadas. Puedes usar el pool de conexiones para limitar la duración de tus conexiones.
Pitón
Java
Node.js
La biblioteca Node.js ' knex ' actualmente no ofrece ninguna funcionalidad para controlar la duración de una conexión.
DO#
Ir
Rubí
ActiveRecord actualmente no ofrece ninguna funcionalidad para controlar la duración de una conexión.
PHP
PDO actualmente no ofrece ninguna funcionalidad para controlar la duración de una conexión.
Ver la solicitud completa
Para ver la solicitud completa, haga clic en el siguiente enlace.
Pitón
Ver la aplicación completa para el lenguaje de programación Python.
Java
Ver la aplicación completa para el lenguaje de programación Java.
Node.js
Ver la aplicación completa para el lenguaje de programación Node.js.
DO#
Ver la aplicación completa para el lenguaje de programación C#.
Ir
Ver la aplicación completa para el lenguaje de programación Go.
Rubí
Ver la aplicación completa para el lenguaje de programación Ruby.
PHP
Ver la aplicación completa para el lenguaje de programación PHP.
¿Qué sigue?
- Obtenga más información sobre IP privada .
- Obtenga información sobre las cuotas y los límites para Cloud SQL y App Engine.
- Conozca las mejores prácticas para trabajar con Cloud SQL.
- Obtenga más información sobre cómo conectarse desde una aplicación externa .