Otimizar o desempenho do banco de dados

Last reviewed 2023-08-06 UTC

Neste documento do Framework de arquitetura do Google Cloud, você encontra recomendações para otimizar o desempenho dos seus bancos de dados no Google Cloud.

Cloud SQL

As recomendações a seguir ajudam a otimizar a performance das instâncias do Cloud SQL que executam bancos de dados do SQL Server, MySQL e PostgreSQL.

Para mais informações, consulte a seguinte documentação:

Bigtable

Nesta seção, apresentamos recomendações para ajudar você a otimizar a performance das instâncias do Bigtable.

Capacidade do plano com base nos requisitos de desempenho

Você pode usar o Bigtable em um amplo espectro de aplicativos, cada um com um objetivo de otimização diferente. Por exemplo, para jobs de processamento de dados em lote, a capacidade pode ser mais importante do que a latência. Para um serviço on-line que atende às solicitações do usuário, talvez seja necessário priorizar a latência mais baixa em vez da capacidade de processamento. Ao planejar a capacidade dos clusters do Bigtable, considere as vantagens e desvantagens entre a capacidade de processamento e a latência. Para mais informações, consulte Planejar a capacidade do Bigtable.

Seguir as práticas recomendadas para a concepção de esquemas

As tabelas podem ser escalonadas para bilhões de linhas e milhares de colunas, permitindo que você armazene petabytes de dados. Ao projetar o esquema para as tabelas do Bigtable, considere as práticas recomendadas de design de esquemas.

Monitorar o desempenho e fazer ajustes

Monitore o uso da CPU e do disco para as instâncias, analise o desempenho de cada cluster e analise as recomendações de dimensionamento mostradas nos gráficos de monitoramento.

Spanner

Nesta seção, apresentamos recomendações para ajudar a otimizar a performance das instâncias do Spanner.

Escolha uma chave primária que impeça um ponto de acesso

Um ponto de acesso é um único servidor que é forçado a processar muitas solicitações. Ao escolher a chave primária para seu banco de dados, siga as práticas recomendadas de design de esquemas para evitar um ponto de acesso.

Seguir as práticas recomendadas para programação SQL

O compilador SQL no Spanner converte cada instrução SQL declarativa que você grava em um plano de execução de consulta imperativo. O Spanner usa esse plano de execução para executar a instrução SQL. Ao criar instruções SQL, siga as práticas recomendadas de SQL para garantir que o Spanner use planos de execução que ofereçam desempenho ideal.

Use as opções de consulta para gerenciar o otimizador de consultas SQL

O Spanner usa um otimizador de consultas SQL para transformar instruções SQL em planos de execução de consulta eficientes. O plano de execução de consulta que o otimizador produz pode mudar um pouco quando o otimizador de consultas evolui ou quando as estatísticas do banco de dados são atualizadas. É possível minimizar o potencial de regressão de performance quando o otimizador de consultas ou as estatísticas do banco de dados mudam usando opções de consulta.

Visualizar e ajustar a estrutura dos planos de execução de consulta

Para analisar problemas de performance na consulta, visualize e ajuste a estrutura dos planos de execução da consulta usando o visualizador de planos de consulta.

Use APIs de operações para gerenciar operações de longa duração

Para determinadas chamadas de método, o Spanner cria operações de longa duração, que podem levar um tempo significativo. Por exemplo, quando você restaura um banco de dados, o Spanner cria uma operação de longa duração para rastrear o progresso da restauração. Para ajudar você a monitorar e gerenciar operações de longa duração, o Spanner disponibiliza APIs de operações. Para mais informações, consulte Como gerenciar operações de longa duração.

Seguir as práticas recomendadas para carregamento em massa

O Spanner dá suporte a várias opções para carregar grandes quantidades de dados em massa. O desempenho de uma operação de carregamento em massa depende de fatores como particionamento, número de solicitações de gravação e tamanho de cada solicitação. Para carregar grandes volumes de dados de maneira eficiente, siga as práticas recomendadas de carregamento em massa.

Monitorar e controlar o uso da CPU

O uso da CPU da instância do Spanner pode afetar as latências das solicitações. Um servidor de back-end sobrecarregado pode causar latências de solicitações mais altas. O Spanner oferece métricas de utilização da CPU para ajudar você a investigar uma alta taxa de utilização da CPU. Para aplicativos sensíveis ao desempenho, talvez seja necessário aumentar a utilização da CPU aumentando a capacidade de computação.

Analisar e resolver problemas de latência

Quando um cliente faz uma chamada de procedimento remoto para o Spanner, a solicitação da API é preparada primeiro pelas bibliotecas de cliente. A solicitação passa pelo Google Front End e pelo front-end da API Cloud Spanner antes de chegar ao banco de dados do Spanner. Para analisar e resolver problemas de latência, é necessário medir e analisar a latência de cada segmento do caminho que a solicitação de API passa. Para mais informações, consulte o Guia completo de latência do Spanner.

Iniciar aplicativos após o banco de dados atingir o estado de calor

À medida que o banco de dados do Spanner cresce, ele divide o espaço-chave dos dados em divisões. Cada divisão é um intervalo de linhas que contém um subconjunto da sua tabela. Para balancear a carga geral no banco de dados, o Spanner move dinamicamente divisões individuais de maneira independente e as atribui a servidores diferentes. Quando as divisões são distribuídas entre vários servidores, o banco de dados é considerado em estado quente. Um banco de dados caloroso pode maximizar o paralelismo e fornecer melhor performance. Antes de iniciar os aplicativos, recomendamos que você aqueça o banco de dados com carregamentos de dados de teste.

A seguir

Confira as práticas recomendadas para otimizar o desempenho dos recursos de computação, armazenamento, rede e análise: