Vous trouverez sur cette page des bonnes pratiques et des exemples de code propres aux langages. Ils vous aideront à créer des applications qui utilisent efficacement les connexions à la base de données Cloud SQL.
Ces exemples sont des extraits d'une application Web complète disponible sur GitHub. En savoir plus
Pour obtenir des instructions détaillées concernant l'exécution d'un exemple d'application Web connectée à Cloud SQL, suivez le lien correspondant à votre environnement :
- Guide de démarrage rapide pour la connexion depuis votre ordinateur local
- Guide de démarrage rapide pour la connexion depuis Compute Engine
- Guide de démarrage rapide pour la connexion depuis Cloud Run
- Guide de démarrage rapide pour la connexion depuis les fonctions Cloud Run
- Guide de démarrage rapide pour la connexion depuis Google Kubernetes Engine
Pools de connexions
Un pool de connexions est un cache de connexions à la base de données, qui sont partagées et réutilisées pour améliorer la latence et les performances de connexion. Lorsque l'application a besoin d'une connexion à une base de données, elle en emprunte une temporairement dans son pool. Une fois qu'elle en a terminé avec cette connexion, elle la renvoie au pool, où elle pourra la réutiliser la prochaine fois qu'elle aura besoin d'une connexion à une base de données.
Se connecter avec TCP
Pour afficher cet extrait dans le contexte d'une application Web, consultez le fichier README sur GitHub.
Pour afficher cet extrait dans le contexte d'une application Web, consultez le fichier README sur GitHub.
Remarque :
- CLOUD_SQL_CONNECTION_NAME doit être représenté sous la forme <MY-PROJECT>:<INSTANCE-REGION>:<INSTANCE-NAME>.
- L'utilisation de l'argument ipTypes=PRIVATE force la connexion de SocketFactory à l'adresse IP privée associée à une instance.
- Pour en savoir plus sur les exigences de version Socket Factory des sockets JDBC pour le fichier pom.xml, cliquez ici.
Pour afficher cet extrait dans le contexte d'une application Web, consultez le fichier README sur GitHub.
Pour afficher cet extrait dans le contexte d'une application Web, consultez le fichier README sur GitHub.
Pour afficher cet extrait dans le contexte d'une application Web, consultez le fichier README sur GitHub.
Pour afficher cet extrait dans le contexte d'une application Web, consultez le fichier README sur GitHub.
Pour afficher cet extrait dans le contexte d'une application Web, consultez le fichier README sur GitHub.
Se connecter avec des sockets Unix
Pour afficher cet extrait dans le contexte d'une application Web, consultez le fichier README sur GitHub.
Pour afficher cet extrait dans le contexte d'une application Web, consultez le fichier README sur GitHub.
Pour afficher cet extrait dans le contexte d'une application Web, consultez le fichier README sur GitHub.
Pour afficher cet extrait dans le contexte d'une application Web, consultez le fichier README sur GitHub.
Pour afficher cet extrait dans le contexte d'une application Web, consultez le fichier README sur GitHub.
Pour afficher cet extrait dans le contexte d'une application Web, consultez le fichier README sur GitHub.
Pour afficher cet extrait dans le contexte d'une application Web, consultez le fichier README sur GitHub.
Ouvrir et fermer des connexions
Lorsque vous utilisez un pool de connexions, vous devez ouvrir et fermer les connexions correctement, de sorte qu'elles soient toujours renvoyées au pool une fois que vous avez terminé. En cas de non-renvoi ou de "fuite" des connexions, elles ne sont pas réutilisées, ce qui gaspille des ressources et peut entraîner des goulots d'étranglement affectant les performances de l'application.
Nombre de connexions
Chaque connexion à la base de données emploie des ressources côté client et côté serveur. De plus, Cloud SQL impose des limites globales de connexions qui ne peuvent pas être dépassées. Créer et utiliser moins de connexions permet de réduire les frais généraux et de rester sous la limite de connexions.
PDO ne propose actuellement aucune fonctionnalité permettant de configurer des limites de connexion.
Intervalle exponentiel entre les tentatives
Si l'application tente sans succès de se connecter à la base de données, il se peut que cette dernière soit temporairement indisponible. Dans ce cas, l'envoi de requêtes de connexion répétées gaspille des ressources. Il est préférable d'attendre avant d'envoyer des requêtes de connexion supplémentaires afin de permettre à la base de données d'être à nouveau accessible. L'utilisation d'un intervalle exponentiel entre les tentatives ou d'un autre mécanisme de retardement permet d'atteindre cet objectif.
Une nouvelle tentative n'a alors de sens que lors de la première connexion, ou lors de la première obtention d'une connexion à partir du pool. Si des erreurs se produisent au milieu d'une transaction, l'application doit effectuer la nouvelle tentative, puis recommencer depuis le début d'une transaction. Ainsi, même si votre pool est correctement configuré, l'application peut toujours afficher des erreurs en cas de perte de connexion.
Le package database/sql ne propose actuellement aucune fonctionnalité permettant de configurer l'intervalle exponentiel entre les tentatives.
PDO ne propose actuellement aucune fonctionnalité permettant de configurer un intervalle exponentiel entre les tentatives.
Délai de connexion
De nombreuses raisons peuvent expliquer l'échec d'une tentative de connexion. La communication réseau n'est jamais garantie, et la base de données peut être temporairement dans l'impossibilité de répondre. Assurez-vous que votre application gère de manière optimale les connexions interrompues ou infructueuses.
Le package database/sql ne propose actuellement aucune fonctionnalité permettant de configurer le délai avant expiration de la connexion. Le délai avant expiration est configuré au niveau du pilote.
Durée de la connexion
Limiter la durée de vie d'une connexion peut aider à empêcher l'accumulation de connexions abandonnées. Pour ce faire, vous pouvez utiliser le pool de connexions.
La bibliothèque Node.js knex ne propose actuellement aucune fonctionnalité permettant de contrôler la durée d'une connexion.
ActiveRecord ne propose actuellement aucune fonctionnalité permettant de contrôler la durée d'une connexion.
PDO ne propose actuellement aucune fonctionnalité permettant de contrôler la durée d'une connexion.
Afficher l'application complète
Pour voir l'application complète, cliquez sur le lien ci-dessous.
Affichez l'application complète pour le langage de programmation Python.
Affichez l'application complète pour le langage de programmation Java.
Affichez l'application complète pour le langage de programmation Node.js.
Affichez l'application complète pour le langage de programmation C#.
Affichez l'application complète pour le langage de programmation Go.
Affichez l'application complète pour le langage de programmation Ruby.
Affichez l'application complète pour le langage de programmation PHP.
Étape suivante
- Apprenez-en plus sur les adresses IP privées.
- Découvrez les quotas et les limites pour Cloud SQL et App Engine.
- Découvrez les bonnes pratiques de travail avec Cloud SQL.
- Apprenez à vous connecter depuis une application externe.