Práticas recomendadas

Nesta página, você encontra as práticas recomendadas para conseguir máximo desempenho, durabilidade e disponibilidade do Cloud SQL.

Se tiver dificuldades com a instância do Cloud SQL, consulte Como diagnosticar problemas para receber ajuda e esta página para uma lista dos problemas conhecidos com o Cloud SQL.

Configuração e administração de instâncias

Prática recomendada Mais informações
Leia e siga as diretrizes operacionais para garantir que as instâncias estejam cobertas pelo SLA do Cloud SQL.
Configure uma janela de manutenção para sua instância principal para controlar quando as atualizações disruptivas podem ser feitas. Consulte Janela de manutenção.
Para cargas de trabalho com muita leitura, adicione réplicas de leitura para descarregar o tráfego da instância primária. Outra opção é usar um balanceador de carga, como o HAProxy, para gerenciar o tráfego para as réplicas.
Se você exclui e recria instâncias regularmente, use um carimbo de data e hora no código da instância para aumentar a probabilidade de que novos códigos sejam utilizáveis. Não é possível reutilizar o código de uma instância por alguns dias após sua exclusão.
Não inicie uma operação administrativa antes que a operação anterior seja concluída.

As instâncias do Cloud SQL não aceitam uma nova solicitação de operação até que tenham concluído a operação anterior. Se você tentar iniciar uma nova operação antes do tempo, a solicitação falhará. Isso inclui reinicializações de instâncias.

Observe que o status da instância no Console do GCP não indica se há uma operação em execução. A marca de verificação verde indica apenas que a instância está no estado RUNNABLE. Para ver se há alguma operação em execução, acesse a guia Operações e verifique o status da operação mais recente.

Limpar tabelas do sistema após atualizações As tabelas de sistema do MySQL (por exemplo, mysql.user ou mysql.db) usam o mecanismo de armazenamento MyISAM. Elas são vulneráveis a desligamentos com erros. É necessário emitir o comando FLUSH CHANGES depois de fazer uma mudança nessas tabelas, como adicionar ou atualizar um usuário usando o cliente mysql. O MyISAM for corrompido e a instância puder reiniciar, será possível usar os comandos CHECK TABLE e REPAIR TABLE para tentar resolver o corrompimento, mas o conteúdo da tabela pode não estar correto.

Arquitetura de dados

Prática recomendada Mais informações
Quando possível, fragmente suas instâncias. Usar várias instâncias pequenas do Cloud SQL é melhor do que uma única instância grande. Gerenciar uma instância grande e monolítica apresenta desafios que não existem quando se usa um número maior de instâncias menores.
Não use muitas tabelas de banco de dados.

Muitas tabelas de banco de dados podem afetar o tempo de resposta da instância. Usar mais de 10.000 tabelas afetará sua cobertura de SLA. Para ver mais informações, consulte Diretrizes operacionais.

Certifique-se de que suas tabelas tenham uma chave primária ou exclusiva. O Cloud SQL usa replicação baseada em linha, que funciona melhor em tabelas com chaves primárias ou exclusivas.

Implementação do aplicativo

Prática recomendada Mais informações
Use boas práticas de gerenciamento de conexão, como o pooling de conexões e a retirada exponencial. Com essas técnicas, seu aplicativo aproveitará melhor os recursos e será mais fácil permanecer dentro dos limites de conexão do Cloud SQL. Para ver mais informações e amostras de código, consulte Como gerenciar conexões de banco de dados.
Teste a resposta do aplicativo às atualizações de manutenção, que podem acontecer a qualquer momento durante a janela de manutenção. Alterar o tipo de máquina de uma instância é o mais próximo de uma atualização de manutenção. A diferença é que, durante a atualização de manutenção, a réplica de failover é atualizada e fica off-line primeiro. Em seguida, ao final da atualização da réplica, a instância primária é atualizada e fica off-line. Para alterações de tipo de máquina, a instância primária fica off-line antes da réplica. O aplicativo tenta se reconectar ao banco de dados usando a retirada exponencial, de preferência. Isso ocorre por pelo menos 10 minutos para garantir que o aplicativo retomará a operação após um evento de manutenção. Para ver mais informações, consulte Como gerenciar conexões de banco de dados.
Teste a resposta da sua aplicação a failovers, que podem acontecer a qualquer momento. É possível iniciar manualmente um failover usando o Console do GCP, a ferramenta de linha de comando gcloud ou a API. Para mais informações, consulte Como iniciar o failover.
Evite transações muito grandes. Faça transações pequenas e curtas. Se for necessária uma grande atualização de banco de dados, faça isso em várias transações menores, em vez de em uma transação grande.
Se você estiver usando o Cloud SQL Proxy, verifique se sua versão é a mais recente. Consulte Como manter o Cloud SQL Proxy atualizado.

Importação e exportação de dados

Prática recomendada Mais informações
Acelere as importações para tamanhos de instâncias pequenas. Em instâncias pequenas, aumente o nível temporariamente para melhorar o desempenho ao importar conjuntos de dados grandes.
Se você estiver exportando dados para importação no Cloud SQL, certifique-se de usar o procedimento adequado. Para ver mais informações, consulte Como exportar dados para importação no Cloud SQL.
Acelere as importações usando o comando mysqldump apropriado ao exportar. Se você estiver usando o utilitário mysqldump para exportar dados para importação no Cloud SQL, leve as seguintes opções em consideração:
  • Desative a confirmação automática e use a opção --single-transaction para agrupar o arquivo ou a tabela em uma única transação.
  • Use a opção --extended-insert (ativada por padrão) para incluir várias linhas em cada instrução INSERT.
Para instâncias de primeira geração, use a replicação do sistema de arquivos assíncrona.
Para uma importação inicial em um banco de dados, use o modo assíncrono para replicação do sistema de arquivos. Quando a importação for concluída, retorne ao modo síncrono para uso em produção. É possível editar uma instância atual e alternar os dois modos.
Proteja seus dados com a funcionalidade apropriada do Cloud SQL.

Backups e exportações são duas maneiras de fornecer redundância e proteção de dados. Cada uma protege contra diferentes cenários e complementam-se em uma estratégia robusta de proteção de dados.

Backups são leves e rápidos de criar. Com eles, é possível restaurar os dados da sua instância ao estado em que estavam quando você fez o backup. No entanto, os backups têm algumas limitações. Se você excluir a instância, os backups também serão excluídos. Não é possível fazer backup de um único banco de dados ou tabela. E se a região em que a instância está localizada estiver indisponível, não será possível usar o backup para restaurá-la, nem mesmo em uma região disponível.

As exportações levam mais tempo para serem estruturadas. Isso ocorre porque um arquivo externo que pode ser usado para refazer seus dados é criado no Cloud Storage. Elas não serão afetadas se você excluir a instância. Além disso, é possível exportar apenas um único banco de dados ou até mesmo uma tabela, dependendo do formato de exportação escolhido.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Cloud SQL para MySQL