Páginas

terça-feira, 20 de março de 2012

MySQL Dump Slow

Este utilitário consolida as informações do slow query log e exibe um relatório sobre as top queries:


- Pegar o intervalo desejado no slow_query_log:
Exemplo:


tac slow_query.log | grep -n -m 5 "Time: YYMMDD hh:mm:ss" -- retornará o número da linha onde aparece o primeiro padrão (de baixo pra cima)
tail -$NUM_LINHA slow_query.log > $PERIODO.log


A partir de YYMMDD hh:mm:ss até o último log. Para pegar sub-intervalos, basta tratar o $PERIODO.log filtrando como desejado.


- Consolidando os dados com mysqldumpslow:


mysqldumpslow -l -s c $PERIODO.log > $ANALISE_PERIODO.log

Exemplo de relatório gerado:
Count: 3006  Time=3.99s (12004s)  Lock=0.00s (0s)  Rows=17.7 (53200), username[username]@2hosts
   SELECT ... FROM ... (QUERY COMPLETA) 
Count: 2197  Time=3.10s (6802s)  Lock=0.00s (0s)  Rows=1.0 (2197), username[username]@2hosts
   SELECT .. FROM ... (QUERY COMPLETA)

Documentação completa: 
http://dev.mysql.com/doc/refman/5.1/en/mysqldumpslow.html