Esta página fornece práticas recomendadas e exemplos de código específicos de linguagem para ajudar você a criar aplicativos que usam conexões de banco de dados do Cloud SQL de forma eficaz.
Estes exemplos são trechos de um aplicativo web completo disponível para você no GitHub. Saiba mais .
Para obter instruções passo a passo sobre como executar um aplicativo Web de exemplo conectado ao Cloud SQL, siga o link para seu ambiente:
- Início rápido para conexão a partir do seu computador local
- Início rápido para conexão do Compute Engine
- Início rápido para conexão do Cloud Run
- Início rápido para conexão com funções do Cloud Run
- Início rápido para conexão do Google Kubernetes Engine
Pools de conexão
Um pool de conexões é um cache de conexões de banco de dados que são compartilhadas e reutilizadas para melhorar a latência e o desempenho da conexão. Quando seu aplicativo precisa de uma conexão de banco de dados, ele pega uma emprestada do pool temporariamente; quando o aplicativo termina a conexão, ele a retorna ao pool, onde pode ser reutilizada na próxima vez que o aplicativo precisar de uma conexão de banco de dados.
Abrir e fechar conexões
Ao usar um pool de conexões, você deve abrir e fechar as conexões corretamente, para que elas sempre retornem ao pool quando você terminar de usá-las. Conexões não retornadas ou "vazadas" não são reutilizadas, o que desperdiça recursos e pode causar gargalos de desempenho para o seu aplicativo.
Pitão
Java
Node.js
C#
Ir
Rubi
PHP
Contagem de conexões
Cada conexão de banco de dados utiliza recursos do lado do cliente e do servidor. Além disso, o Cloud SQL impõe limites gerais de conexão que não podem ser excedidos. Criar e usar menos conexões reduz a sobrecarga e ajuda você a permanecer dentro do limite de conexões.
Pitão
Java
Node.js
C#
Ir
Rubi
PHP
Atualmente, o PDO não oferece nenhuma funcionalidade para configurar limites de conexão.
Recuo exponencial
Se o seu aplicativo tentar se conectar ao banco de dados e não obtiver sucesso, o banco de dados poderá ficar temporariamente indisponível. Nesse caso, o envio repetido de solicitações de conexão desperdiça recursos. É preferível aguardar antes de enviar solicitações de conexão adicionais para permitir que o banco de dados fique acessível novamente. Usar um backoff exponencial ou outro mecanismo de atraso atinge esse objetivo.
Essa nova tentativa só faz sentido na primeira conexão ou na primeira captura de uma conexão do pool. Se ocorrerem erros no meio de uma transação, o aplicativo deverá realizar a nova tentativa, desde o início da transação. Portanto, mesmo que o pool esteja configurado corretamente, o aplicativo ainda poderá apresentar erros se as conexões forem perdidas.
Pitão
Java
Node.js
C#
Ir
O pacote de banco de dados/sql atualmente não oferece nenhuma funcionalidade para configurar o backoff exponencial.
Rubi
PHP
Atualmente, o PDO não oferece nenhuma funcionalidade para configurar o backoff exponencial.
Tempo limite de conexão
Há muitos motivos pelos quais uma tentativa de conexão pode não ser bem-sucedida. A comunicação de rede nunca é garantida e o banco de dados pode ficar temporariamente indisponível. Certifique-se de que seu aplicativo trate conexões interrompidas ou malsucedidas com eficiência.
Pitão
Java
Node.js
C#
Ir
O pacote database/sql atualmente não oferece nenhuma funcionalidade para configurar o tempo limite de conexão. O tempo limite é configurado no nível do driver.
Rubi
PHP
Duração da conexão
Limitar o tempo de vida de uma conexão pode ajudar a evitar o acúmulo de conexões abandonadas. Você pode usar o pool de conexões para limitar o tempo de vida de suas conexões.
Pitão
Java
Node.js
A biblioteca Node.js ' knex ' atualmente não oferece nenhuma funcionalidade para controlar a duração de uma conexão.
C#
Ir
Rubi
Atualmente, o ActiveRecord não oferece nenhuma funcionalidade para controlar a duração de uma conexão.
PHP
Atualmente, o PDO não oferece nenhuma funcionalidade para controlar a duração de uma conexão.
Veja o requerimento completo
Para ver o requerimento completo, clique no link abaixo.
Pitão
Veja o aplicativo completo para a linguagem de programação Python.
Java
Veja o aplicativo completo para a linguagem de programação Java.
Node.js
Veja o aplicativo completo para a linguagem de programação Node.js.
C#
Veja o aplicativo completo para a linguagem de programação C#.
Ir
Veja o aplicativo completo para a linguagem de programação Go.
Rubi
Veja o aplicativo completo para a linguagem de programação Ruby.
PHP
Veja o aplicativo completo para a linguagem de programação PHP.
O que vem a seguir
- Saiba mais sobre IP privado .
- Saiba mais sobre cotas e limites para o Cloud SQL e o App Engine.
- Saiba mais sobre as práticas recomendadas para trabalhar com o Cloud SQL.
- Saiba mais sobre como se conectar a partir de um aplicativo externo .