3 Dicas para Otimizar o Banco de Dados MySQL da sua Empresa

Existem muitas técnicas para otimizar o desempenho de bancos de dados MySQL com grande volume de dados e consultas. Apresentamos 3 dicas fundamentais para lhe ajudar nessa difícil tarefa.

OPTMAX

3 Dicas para Otimizar o Banco de Dados MySQL da sua Empresa

Existem muitas técnicas que podem transformar um banco de dados lento e improdutivo em um banco de dados com alto desempenho. Muitas vezes nem é preciso aumentar custos com infraestrutura, isto é, o hardware das máquinas pode estar bem dimensionado e as configurações do banco ou a forma como ele é utilizado pode não ser adequada.

Dica #1 - Monitore o seu banco de dados

Esse é o primeiro passo para encontrarmos onde está o gargalo no desempenho. Ferramentas de monitoramento, como o Percona Monitoring and Management, permitem um acompanhamento efetivo e auxiliam na identificação de problemas e pontos de otimização.

Dica #2 - Use índices

O uso de índices é fundamental para a eficiência de uma consulta (ou alteração) no banco. A menos que seja necessário recuperar todos os dados de uma tabela, todas as consultas referenciadas devem utilizar índices. Se não houver índices suficientes, esses devem ser criados para todas as colunas referenciadas. A utilização de foreign keys, além de ser uma boa prática para manter a integridade referencial dos dados, também cria automaticamente índices em colunas chaves, acelerando naturalmente o desempenho de joins. Uma forma de entender como o MySQL utiliza índices em uma consulta é explorar o plano de execução. Mais informações sobre como visualizar o plano de execução podem ser encontradas aqui.

Embora o uso de índices seja fundamental, o seu excesso também pode comprometer o desempenho de inserções, alterações e deleções. Isso ocorre pois, a cada alteração nos dados, os índices criados também devem ser atualizados. Mais informações sobre como o MySQL utiliza índices podem ser encontradas aqui.

Dica #3 - Gerencie tabelas muito grandes

Mesmo com o uso de índices, tabelas com dezenas ou centenas de milhões de linhas podem representar um desafio em termos de desempenho de consultas. Uma forma de lidar com esse problema é criar tabelas resumo da tabela grande. Por exemplo, para uma tabela que registra as vendas da empresa, e se existir um relatório no qual é necessário ver somente as vendas mensais, deve-se criar uma tabela resumo por mês que é populada por uma rotina que roda periodicamente (fora do horário comercial preferencialmente).

Outro método que garante bons resultados é o particionamento das tabelas. Com o particionamento é possível restringir a consulta a um subconjunto dos dados, melhorando o seu desempenho. Mais informações sobre particionamento podem ser encontradas aqui.

Conclusão

Há muitos anos, grandes organizações utilizam o MySQL como banco de dados de alto desempenho (e.g. Facebook, Google, Twitter). Porém, para garantir o alto desempenho é necessário investir na manutenção e otimização do banco de dados. Este artigo apresenta algumas dicas fundamentais (mas, longe de serem as únicas) que podem ajudar na melhoria do desempenho de bancos de dados MySQL.

Quer saber mais?

MySQL - Site oficial e documentação
Percona Monitoring and Management
Entre em contato (contato@optmax.com.br)

Sobre a OPTMAX

Procuramos nos capacitar para entender melhor o universo em que nossos clientes estão inseridos.
Se entendemos, somos capazes de propor soluções e implementá-las.
Todas essas ações nos trazem conhecimento e experiência para inovar.

Nossos Contatos

Rua Nelson Soares de Faria 235
Bairro Cidade Nova
Belo Horizonte, Minas Gerais