Registros de consultas lentas do MySQL: um guia detalhado
Publicados: 2023-08-01O artigo é um recurso conciso, mas abrangente, projetado para fornecer uma compreensão clara dos logs de consulta lenta do MySQL e como interpretá-los de forma eficaz. Este guia visa desvendar as complexidades que envolvem logs de consulta lentos, permitindo que os usuários identifiquem e resolvam gargalos de desempenho e possíveis problemas de banco de dados.
Habilitar o Slow Query Log para MySQL prova ser um ativo valioso no diagnóstico de desafios de desempenho e eficiência que podem afetar seu servidor. Ao identificar consultas com tempos de execução notavelmente lentos, você ganha a capacidade de resolvê-los efetivamente reestruturando o aplicativo responsável pelas consultas ou otimizando as próprias consultas. Essa abordagem proativa garante que suas consultas sejam construídas com eficiência ideal, resultando em um melhor desempenho geral do sistema.
Índice
Introdução ao MySQL
O MySQL é um dos sistemas de gerenciamento de banco de dados relacional de código aberto mais populares, amplamente usado para armazenar, gerenciar e recuperar dados para vários aplicativos e software da Web. Assim como qualquer sistema de banco de dados sofisticado, o MySQL fornece um mecanismo de log robusto para registrar informações essenciais sobre suas atividades e desempenho. Esses logs desempenham um papel crucial no monitoramento e solução de problemas do comportamento do banco de dados e podem fornecer informações valiosas sobre a integridade e a eficiência do sistema.
Tipos de logs gerados pelo MySQL
Existem vários tipos de logs gerados pelo MySQL, cada um servindo a um propósito específico:
- Log de consulta geral : esse log registra todas as consultas SQL executadas no servidor, independentemente de sua origem. É uma ferramenta poderosa para depurar e entender a sequência de consultas que estão sendo executadas, mas também pode gerar uma grande quantidade de dados, tornando-a adequada principalmente para diagnósticos de curto prazo.
- Registro de erros: O registro de erros captura todos os erros encontrados durante a operação do servidor MySQL. Esses erros podem incluir problemas de inicialização, desligamento ou outros erros críticos que podem afetar a funcionalidade do banco de dados. O monitoramento do log de erros ajuda os administradores a identificar e resolver problemas potenciais rapidamente.
- Log de consultas lentas: conforme mencionado anteriormente, o log de consultas lentas registra consultas que demoram mais do que um limite predefinido para serem executadas. Esse log é útil para identificar gargalos de desempenho e consultas ineficientes, permitindo que os administradores otimizem e melhorem o desempenho geral do banco de dados.
- Log Binário: O Log Binário contém um registro de todas as alterações de dados (inserções, atualizações e exclusões) feitas no banco de dados. Ele é usado para fins de replicação, permitindo que os dados sejam sincronizados em vários servidores MySQL.
- Relay Log: O Relay Log é específico para a replicação do MySQL. Ele armazena os dados recebidos do servidor mestre antes de serem executados no servidor escravo em uma configuração de replicação.
Como ativar o log de consultas lentas do MySQL?
Abaixo estão as etapas para ativar o log de consulta lenta para MySQL ou MariaDB.
- Primeiro, você precisa fazer login no SSH usando Bitwise. Abra o cliente Bitwise SSH. Forneça seus detalhes de host, porta e nome de usuário, escolha a senha no menu suspenso Método inicial e prossiga clicando no botão de login. Um pop-up aparecerá, solicitando que você insira sua senha SSH. Digite a senha SSH no campo fornecido.
2. Acesse o arquivo /etc/mysql/my.cnf usando um editor de texto. Para isso, primeiro vá para Nova janela SFTP do Bitwise SSH Client.
Agora, digite /etc na barra de pesquisa dos arquivos remotos e pressione enter.
Abra o arquivo mysql ou MariaDB.
Agora selecione my.cnf, clique com o botão direito e clique em editar.
Um editor de texto aparecerá. Copie os seguintes comandos, cole-os na parte inferior do arquivo e salve-o.
slow_query_log = 1 slow-query_log_file = /var/log/mysql-slow.log long_query_time = 2
3. Agora abra o terminal Bitwise e execute os seguintes comandos para gerar o arquivo /var/log/mysql-slow.log e atribuir o usuário mysql como seu proprietário.
touch /var/log/mysql-slow.log chown mysql:mysql /var/log/mysql-slow.log
4. Para reiniciar o MySQL ou MariaDB, execute o comando abaixo.
/usr/local/cpanel/scripts/restartsrv_mysql
Leia o log de consulta lenta do MySQL
Acesse o arquivo que contém os logs de consulta lenta usando:
/var/log/mysql/mysql-slow.log
Dentro do arquivo de log, cada consulta lenta é registrada como uma entrada. Essas entradas geralmente incluem detalhes como carimbo de data/hora, tempo de execução da consulta, o número de linhas examinadas e a instrução SQL real.
Em vez de ler diretamente o log de consulta lenta, geralmente é mais benéfico utilizar o comando "mysqldumpslow" para analisar e resumir o conteúdo do log. Você pode executar o comando enquanto estiver logado como root através do SSH, da seguinte forma:
sudo -i mysqldumpslow /var/log/mysql/mysql-slow.log
A saída abaixo será obtida:
perguntas frequentes
Qual é o propósito do comando mysqldumpslow?
O comando mysqldumpslow serve para analisar e resumir o conteúdo do MySQL Slow Query Log. Ele permite extrair informações valiosas do arquivo de log, incluindo detalhes sobre as consultas lentas que ocorrem com mais frequência e seus respectivos tempos de execução. Ao executar mysqldumpslow /var/log/mysql/mysql-slow.log , você pode efetivamente analisar e obter insights das consultas lentas de maneira eficiente.
Posso usar o Slow Query Log para monitoramento de longo prazo?
Embora o Slow Query Log seja valioso para diagnósticos de curto prazo, habilitá-lo por períodos prolongados pode resultar na geração de um volume substancial de dados. Para facilitar o monitoramento de longo prazo, é recomendável explorar abordagens alternativas, como o emprego de ferramentas de monitoramento e soluções de análise de desempenho. Isso ajuda a evitar um estouro do log com entradas excessivas e garante o gerenciamento eficaz do desempenho do banco de dados ao longo do tempo.
Como o Slow Query Log pode ajudar no diagnóstico de problemas de desempenho do banco de dados?
O Slow Query Log desempenha um papel vital no diagnóstico de problemas de desempenho do banco de dados, pois identifica consultas com tempos de execução lentos. Por meio da análise dessas consultas lentas, os administradores podem localizar com precisão gargalos de desempenho e ineficiências no banco de dados. Munidos dessas informações, eles podem otimizar consultas, reestruturar aplicativos ou implementar mudanças essenciais para melhorar significativamente o desempenho geral do sistema.
Como posso otimizar as consultas com base nas informações do Registro de Consulta Lenta?
Depois de identificar as consultas lentas do log, você tem a oportunidade de otimizá-las por meio de vários métodos. Isso inclui adicionar índices adequados, reescrever consultas ou reestruturar o esquema do banco de dados. Além disso, empregar técnicas de otimização de consulta, como EXPLAIN e criação de perfil, pode fornecer informações valiosas e contribuir para melhorias significativas no desempenho da consulta.
O Slow Query Log é aplicável apenas para MySQL ou pode ser usado com outros sistemas de banco de dados?
O Slow Query Log é projetado exclusivamente para sistemas de banco de dados MySQL e MariaDB. Embora outros sistemas de gerenciamento de banco de dados possam oferecer recursos comparáveis, é importante observar que o formato de log e os métodos de ativação podem variar entre sistemas diferentes.