- 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]@2hostsSELECT ... 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