Como eu vejo quais consultas estão sendo lentas?

1

Estou executando o Ubuntu 12.04.2 LTS (GNU / Linux 3.2.0-24-virtual x86_64) e o servidor mysql da Percona.

Eu sei que estou recebendo consultas lentas, mas não tenho certeza de onde encontro o que elas são para que eu possa tentar resolvê-las.

Alguém pode me ajudar a encontrar onde estão os registros e se eu posso dizer quais são as consultas incorretas.

Obrigado

    
por GoldieNZ 05.03.2013 / 21:26

2 respostas

2

Eu começaria habilitando mysql_long_queries e examinaria a saída do log.

em my.cnf em [mysqld]

long_query_time         = 1
log-slow-queries        = /var/log/mysql/mysql_slow.log

e de lá ir.

Você também pode usar:

show processlist
show full processlist

para ver quais consultas estão sendo executadas no momento.

    
por 05.03.2013 / 21:34
0

Tudo o que o nosso amigo rfelsburg disse está correto e você deve fazer. No entanto, eu tenho que adicionar nem todas as consultas que você vê no log de consultas lentas estão realmente em execução lenta. Você precisa prestar atenção que algumas consultas estão aguardando na fila para serem executadas. Mas, como há outras consultas lentas em execução, elas aparecem no log de consultas lentas como consultas que passaram o valor de long_query_time e você acha que elas estão sendo lentas.

Depois de deixar seu servidor rodar por um tempo e coletar algumas consultas lentas, você precisa usar slowquerydump mais informações clique aqui e isso gerará um arquivo formatado legal para você, assim você poderá encontrar as consultas, quantas vezes foram executadas, o tempo de bloqueio da tabela ... e executá-las uma a uma para ver se eles estão realmente funcionando devagar ou ficaram muito tempo na fila para serem executados.

Deixe-me saber se você tem alguma dúvida.

    
por 06.03.2013 / 16:36

Tags