Como ver as slow queries ou queries lentas do Mysql


Estava trocando mensagens pelo twitter com um cliente nosso hoje e ele se interessou em poder ver no servidor local dele as slow queries do mysql, que são as queries lentas, ou seja, aquilo que por alguma maneira, não encontra-se totalmente otimizado, e com certeza deixará o seu site lento.

Lembrando que estas configurações são para o Mysql 5.1 e 5.3. O mysql 5.0 loga apenas em arquivo e por ser uma versão defasada, não iremos focar nela.

A KingHost já oferece esta solução no painel de controle (dentro do Gerenciamento do Mysql), mas como não podemos postar aqui todo o arquivo de configuração do mysql (my.cnf), vou colocar apenas as linhas pertinentes às slow queries.

Dentro do [mysqld], no arquivo my.cnf (se for em um Linux, possivelmente ele pode estar em /etc/my.cnf ou /etc/mysql/my.cnf), coloque:

# logar as queries sem indices criados, que é o principal problema que queremos atacar

log-queries-not-using-indexes

# logar as queries lentas em uma tabela chamada slow_log, dentro do bd mysql (precisa no mínimo mysql 5.1 para isso)
log_output = ‘TABLE’

# logar slow_queries… se voce nao quiser mais gravar as queries lentas, mesmo com mysql rodando, basta dar um “SET GLOBAL slow_query_log=OFF e a geração de log vai parar (precisa no mínimo mysql 5.1 para isso)

slow_query_log = ‘ON’

# para examinar queries que retornem no minimo 50 registros
min_examined_row_limit=50

Após reiniciar o Mysql com estas configurações, será criada uma tabela slow_log no banco de dados mysql. Você poderá consultar nela as suas queries lentas e otimizá-las em ambiente de desenvolvimento.

Mais informações no site oficial, aqui: dev.mysql.com/doc/refman/5.1/en/slow-query-log.html e aqui: dev.mysql.com/doc/refman/5.1/en/log-tables.html

Comentários

comentário(s)

4 Comments

Add yours

+ Leave a Comment