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.
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
- MySQL/MariaDB →
- 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 ...
, evitandoSELECT *
, que demanda mais processamento. - Restringa o volume de dados retornados com cláusulas
WHERE
eLIMIT
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.