Pergunta

Eu estou querendo saber é que existe alguma outra maneira de verificar a nossa consultas lentas, sem o log de consultas lentas.Suponha que, eu tenho um highily ocupado server não pode se dar ao luxo de log muito para economizar memória e I/Os.Então, existe alguma outra forma disponível para verificar se eu tenho uma consulta lenta?Eu sei, nós podemos fazer de criação de perfil de consulta, mas ainda não tem certeza exatamente o que fazer para identificar qual a consulta é aquele que assume a maior parte do tempo e da memória.

Acabou de começar o mysql administração e não sabe como lidar com isso.Qualquer orientação será muito apreciada.

Foi útil?

Solução

Se você não deseja habilitar o log de consultas lentas, eu tenho uma sugestão

Você pode usar pt-consulta-digest durante um intervalo de tempo.

Eu sugeri isso algumas vezes na DBA StackExchange

Se você olhar no meu Nov 24, 2011 link, Eu prestei um shell script que você pode crontab para lançar pt-consulta-digest.

DAR-LHE UMA TENTATIVA !!!

Outras dicas

Você pode executar a instrução a seguir em um loop em um script que dispara a instrução a cada 10 segundos, por exemplo.

mysql -e 'SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST where time>10 and command<>"Sleep"'

Você pode personalizá-lo para dar-lhe mais ou menos informações, dependendo da consulta problema.

mysql> desc INFORMATION_SCHEMA.PROCESSLIST;
+---------------+---------------------+------+-----+---------+-------+
| Field         | Type                | Null | Key | Default | Extra |
+---------------+---------------------+------+-----+---------+-------+
| ID            | bigint(21) unsigned | NO   |     | 0       |       |
| USER          | varchar(16)         | NO   |     |         |       |
| HOST          | varchar(64)         | NO   |     |         |       |
| DB            | varchar(64)         | YES  |     | NULL    |       |
| COMMAND       | varchar(16)         | NO   |     |         |       |
| TIME          | int(7)              | NO   |     | 0       |       |
| STATE         | varchar(64)         | YES  |     | NULL    |       |
| INFO          | longtext            | YES  |     | NULL    |       |
| TIME_MS       | bigint(21)          | NO   |     | 0       |       |
| ROWS_SENT     | bigint(21) unsigned | NO   |     | 0       |       |
| ROWS_EXAMINED | bigint(21) unsigned | NO   |     | 0       |       |
+---------------+---------------------+------+-----+---------+-------+
11 rows in set (0.00 sec)

No fim de não guardar a mesma consulta muitas vezes, você pode usar o hash da consulta como uma chave exclusiva.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a dba.stackexchange
scroll top