Após identificar lentidão no banco de dados por meio de instruções SQL, a equipe de Banco de Dados deve seguir um checklist de tarefas para solucionar o problema.
As instruções são úteis para monitorar e diagnosticar problemas de desempenho relacionados a consultas lentas, permitindo uma análise precisa e em tempo real do comportamento do banco de dados e ajudam a identificar e corrigir problemas que impactam a performance geral do sistema.
O checklist oferece uma abordagem prática e completa para diagnosticar e solucionar lentidão, envolvendo tanto ajustes na configuração do MySQL quanto no ambiente operacional. A execução cuidadosa dessas etapas permitirá melhorar a performance e garantir estabilidade no banco de dados.
A seguir, estão listadas as instruções SQL para diagnosticar a lentidão no banco de dados, acompanhadas de um checklist de tarefas essenciais para a resolução.
Esta documentação é destinada exclusivamente à equipe de Banco de Dados (DBA) e contém configurações e informações críticas que apenas eles devem acessar e alterar, pois impactam diretamente o funcionamento do banco. Qualquer erro nessas configurações pode impedir sua inicialização adequada. Portanto, membros de outras equipes não devem realizar modificações nas configurações mencionadas.
Ferramentas utilizadas
Para executar o protocolo, é necessário acessar a ferramenta SQLyog.
Como fazer
O protocolo para a resolução de lentidão no Banco de Dados é composto por duas etapas principais:
Executar instruções no SQLyog: Inclui comandos específicos para análise e diagnóstico da performance do banco de dados.
Realizar checklist de tarefas: Envolve ações corretivas baseadas nos resultados obtidos, garantindo a eficiência na solução do problema.
Veja abaixo os detalhes de cada etapa.
Executar instruções no SQLyog
Para identificar lentidão no banco de dados, acesse a ferramenta SQLyog e execute as seguintes instruções:
Instrução
Descrição da Instrução
SHOW GLOBAL STATUS WHERE variable_name = ‘Slow_queries’;
Verifica a quantidade de consultas registradas no servidor desde que ele foi iniciado.
SELECT COUNT(0) total_slow_query_dia FROM mysql.slow_log WHERE start_time >= CURRENT_DATE ORDER BY start_time;
Verifica a quantidade de consultas registradas no dia.
Se o número total de consultas lentas no dia for maior que 200, pode-se considerar que há indícios de lentidão no banco de dados.
SHOW GLOBAL STATUS LIKE = ‘Slow_queries’;
Verifica a quantidade de consultas lentas, ou seja, aquelas que levam mais de 5 segundos para serem concluídas.
Guia Visual 1. Instruções SQL
Esse monitoramento é essencial para a manutenção do desempenho do banco de dados e pode orientar ações resolutivas.
Realizar checklist de tarefas
Esta documentação é destinada exclusivamente à equipe de Banco de Dados (DBA) e contém configurações e informações críticas que apenas eles devem acessar e alterar, pois impactam diretamente o funcionamento do banco. Qualquer erro nessas configurações pode impedir sua inicialização adequada. Portanto, membros de outras equipes não devem realizar modificações nas configurações mencionadas.
Após ser diagnosticado a lentidão no banco de dados, realize o checklist de tarefas abaixo:
Checklist de Tarefas para solucionar lentidão no Banco de Dados
Revisar a configuração do arquivo my.cnf:
Verifique se os parâmetros estão otimizados com base nos recursos disponíveis no servidor (CPU, memória e disco).
Ajuste os parâmetros, como o innodb_buffer_pool_size.
Analisar a quantidade de consultas lentas (Slow Queries)
Utilize novamente a instrução SHOW GLOBAL STATUS WHERE variable_name = ‘Slow_queries’;
Avalie se o crescimento das consultas lentas continua alto após os ajustes iniciais.
Monitorar e revisar o log de consultas lentas (slow_log)
Ative o log de consultas lentas, se necessário:
SET GLOBAL slow_query_log = ‘ON’;
SET GLOBAL long_query_time = 2; — Define o limite para registrar consultas que demoram mais de 2 segundos.
Analise quais consultas estão sendo registradas frequentemente.
Utilizar o EXPLAIN nas Consultas Identificadas
Execute o comando EXPLAIN nas consultas mais lentas para entender como o otimizador do MySQL está tratando cada instrução:
EXPLAIN SELECT * FROM tabela WHERE campo = ‘valor’;
Avalie se as consultas podem ser otimizadas com índices ou reescritas mais eficientes.
Verificar e ajustar Índices
Avalie se os índices existentes são eficientes.
Crie novos índices, se necessário, para melhorar o desempenho de consultas recorrentes.
Executar ANALYZE nas Tabelas Principais
Garanta que as estatísticas de índices das tabelas estejam atualizadas para que o otimizador faça melhores escolhas:
ANALYZE TABLE nome_da_tabela;
Verificar a PROCESSLIST
Use o comando abaixo para monitorar processos ativos e identificar consultas que estão travando ou consumindo muitos recursos:
SHOW PROCESSLIST;
Analisar outros status do Banco
SHOW GLOBAL STATUS;
Verifique variáveis como Table_locks_waited e Innodb_row_lock_time_avg.
Verificar o status do sistema operacional
Monitore o consumo de I/O, rede e memória no servidor Linux:
top # Para ver o uso de CPU e memória
iostat -x 1 10 # Para monitorar I/O
vmstat 1 10 # Para visualizar a carga do sistema
Analise se há picos anômalos de consumo que possam estar impactando o banco.