Quais são as boas práticas para permitir o crescimento do meu Banco de Dados?

1. Cuidar do espaço em disco

  • Mantenha o tamanho do banco de dados abaixo de 5 GB sempre que possível. Isso aumenta a probabilidade de os dados serem acessados diretamente da memória RAM, melhorando o desempenho da aplicação e acelerando as rotinas de backup.
  • Remova dados desnecessários periodicamente.
  • Segmente as bases de dados de acordo com o tipo e a frequência de acesso das informações. Por exemplo:
    • Manter na base principal apenas os dados mais recentes, como o histórico de pedidos dos últimos 12 meses.
    • Armazenar em uma base adicional os dados menos acessados, como pedidos com mais de um ano.
  • Particione dados entre diferentes bases seguindo critérios específicos. Por exemplo:
    • Base A: informações de usuários.
    • Base B: informações de pedidos.
      Esse método, chamado sharding, utiliza uma lógica de programação para definir em qual base as consultas devem ser executadas.
    Exemplo: No código, uma função InformaBancoDadosPara(ID_Usuario) determina para qual base direcionar a consulta.

2. Otimizar o desempenho

  • Execute manutenções periódicas conforme as recomendações de cada SGBD:
    • MySQL/MariaDB → OPTIMIZE
    • PostgreSQL → VACUUM
    • PostgreSQL e SQL Server → REINDEX
  • Crie e mantenha índices nas colunas mais consultadas. Pesquisar em uma coluna sem índice exige mais processamento e aumenta o tempo de resposta.
  • Analise consultas SQL usando o comando EXPLAIN. Ele ajuda a identificar colunas que precisam de índices e a detectar gargalos em tabelas grandes.
  • Utilize query caching para buscar dados diretamente na memória, reduzindo o acesso ao disco.
  • Prefira consultas específicas, como SELECT coluna1, coluna2 FROM ..., evitando SELECT *, que demanda mais processamento.
  • Restringa o volume de dados retornados com cláusulas WHERE e LIMIT para buscar apenas o necessário.

3. Distribuir a carga em múltiplos bancos

  • Ajuste a aplicação para separar operações de leitura e escrita. Isso permite utilizar um modelo de replicação master/slave, onde:
    • O servidor master recebe operações de escrita e leitura.
    • Os servidores slaves recebem apenas leituras.
  • Uma boa prática é destinar um servidor slave exclusivamente para geração de relatórios, evitando sobrecarga no master.

Nota:
A adoção dessas práticas previne sobrecargas, melhora o desempenho e proporciona maior escalabilidade para o banco de dados, garantindo que ele acompanhe o crescimento da aplicação.

Veja também: Preparando bancos de dados para o crescimento

AVISO LEGAL: Os procedimentos descritos neste documento devem ser executados de acordo com o contexto de cada sistema, de forma a evitar impactos negativos à segurança, disponibilidade, integridade e privacidade de dados. A CentralServer se reserva o direito de modificar a qualquer tempo e sem aviso prévio as informações aqui apresentadas a fim de refletir o lançamento de novos serviços, atualizações físicas e operacionais, e evolução do estado-da-arte da tecnologia.