Boas práticas para permitir o crescimento do Banco de Dados

word cloud - database 2

Para que o seu site possa aproveitar os recursos de escalabilidade na nuvem, é necessário adotar boas práticas de programação e manutenção do Banco de Dados.

1. Cuide do espaço em disco

O espaço em disco do banco de dados deve ser mantido o mais enxuto possível, preferencialmente, abaixo de 5GB. Isso aumenta a probabilidade dos dados serem acessados em memória RAM, o que melhora o desempenho da aplicação. O uso de bases menores também torna mais rápida a execução das rotinas de backup. Veja algumas dicas para reduzir o tamanho da base de dados:

  • Elimine dados que não são mais necessários.
  • Use segmentação, criando bases adicionais para guardar os dados menos acessados. Ou seja, mantenha na base principal somente as informações mais recentes (ex.: histórico de pedidos dos últimos 12 meses).
    Já as informações que vão “esfriando”, mova para bases adicionais (ex.: histórico de pedidos de 2013-2014, e assim por diante). Na aplicação, a pesquisa do “histórico de pedidos” pode trazer os resultados mais recentes, seguidos de um link do tipo “Pesquisar pedidos anteriores ao ano…”.
  • Use particionamento (sharding). Esse método consiste em dividir os dados em várias bases usando determinados critérios (ex.: “Base A” com informações de usuários, “Base B” com informações de pedidos) e criar uma lógica de programação que decida para qual base direcionar as consultas. Quando se usa sharding, o método de conexão inicial dos scripts passa ser algo como InformaBancoDadosPara(ID_Usuario).

2. Otimize o desempenho

  • Execute periodicamente rotinas de manutenção, seguindo as instruções de cada banco de dados.
    • Optimize para MySQL/MariaDB
    • Vacuum para PostgreSQL
    • Reindex para PostgreSQL e SQL Server
  • Crie e mantenha índices para as colunas mais utilizadas. Uma pesquisa em uma coluna não indexada exige mais processamento e leva bem mais tempo para exibir os resultados do que uma pesquisa indexada.
  • Use o comando “explain” para analisar as consultas SQL realizadas no banco. Com este comando é possível descobrir se alguma coluna precisa ser indexada ou se uma tabela muito grande está causando a demora na apresentação do resultado da pesquisa.
  • Use técnicas de “query caching” sempre que possível. Dados em memória são acessados mais rapidamente que dados no disco rígido.
  • Não use queries do tipo “select * from” que têm um grande impacto no processamento do banco. Prefira “select coluna1, coluna2 […] from”.
  • Restrinja o resultado das pesquisas com “where” e “limit”. Busque somente os dados realmente necessários.

3. Distribua a carga em múltiplos bancos

Ajuste a programação separando os métodos de escrita e leitura de dados nos scripts. Isso permite o uso de uma estrutura com replicação master/slave para distribuir a carga das consultas SQL. Nesse modelo, o servidor master pode receber escritas e leituras de dados, enquanto os slaves recebem somente leituras. Uma sugestão, por exemplo, é ter um servidor slave dedicado para geração de relatórios.

O uso dessas técnicas permite prevenir sobrecargas e resulta em um maior controle da aplicação.

 

Gostou desse conteúdo?

Fique atualizado recebendo gratuitamente nossos artigos diretamente no seu email

Também pode lhe interessar

x

Peraí... Você segue uma rotina de backup confiável?

Saiba como manter seus dados seguros, acessíveis e íntegros.

Acesse aqui o seu Guia prático!