MySQL: como habilitar o log de consulta lenta?

4

Você pode me dar um exemplo sobre como habilitar o log de consultas lentas do MySQL?

De acordo com o doc :

As of MySQL 5.1.29, use --slow_query_log[={0|1}] to enable or disable the slow query log, and optionally --slow_query_log_file=file_name to specify a log file name. The --log-slow-queries option is deprecated.

Então, como eu uso essa opção? Posso colocar em my.cnf ? Um exemplo seria muito apreciado.

    
por Continuation 28.02.2011 / 12:54

2 respostas

5

Correto.

É melhor colocar isso na parte geral / global (superior) do seu arquivo my.cnf.

Há duas coisas que você precisa fazer: (1) habilitá-lo e (2) definir o destino do arquivo de log.

slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow-query.log

Espero que isso ajude.

    
por 28.02.2011 / 13:04
4

Aqui está algo interessante.

O MySQL 5.1 / 5.5 permite que você converta o log de consultas lentas em MyISAM.

Veja como faço isso para meus clientes:

Passo 1) Adicione esta linha ao /etc/my.cnf

log_output=TABLE
slow_query_log
slow_query_log_file=slow-queries.log

Passo 2) Reinicie o mysql (service mysql restart)

Neste ponto, a tabela mysql.slow_log existe, mas como CSV do mecanismo de armazenamento.

Passo 3) Converta mysql.slow_log para MyISAM e indexe o campo start_time

SET @old_log_state = @@global.slow_query_log;
SET GLOBAL slow_query_log = 'OFF';
ALTER TABLE mysql.slow_log ENGINE = MyISAM;
ALTER TABLE mysql.slow_log ADD INDEX (start_time);
SET GLOBAL slow_query_log = @old_log_state;

Agora você pode executar consultas SELECT em relação a ele.

Tente.

    
por 28.02.2011 / 18:39

Tags