Назад | Перейти на главную страницу

Как узнать, какие запросы выполняются медленно

Я использую Ubuntu 12.04.2 LTS (GNU / Linux 3.2.0-24-virtual x86_64) и сервер mysql Percona.

Я знаю, что получаю медленные запросы, но я не уверен, где я нахожу их, поэтому я могу попытаться исправить их.

Может ли кто-нибудь помочь мне найти, где находятся журналы, и смогу ли я сказать, в чем заключаются оскорбительные запросы.

Спасибо

Я бы начал с включения mysql_long_queries, а затем изучил бы вывод журнала.

в my.cnf под [mysqld]

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

и идти оттуда.

Вы также можете использовать:

show processlist
show full processlist

чтобы узнать, какие запросы выполняются в данный момент.

Все, что сказал наш друг rfelsburg, правильно и вы должны делать. Однако я должен добавить, что не все запросы, которые вы видите в журнале медленных запросов, действительно работают медленно. Обратите внимание, что некоторые запросы ждут в очереди на выполнение. Но поскольку выполняются другие медленные запросы, они появляются в журнале медленных запросов как запросы, которые передали значение long_query_time, и вы думаете, что они выполняются медленно.

После того, как вы дадите своему серверу поработать некоторое время и соберете несколько медленных запросов, вам нужно будет использовать slowquerydump больше информации нажмите здесь и это сгенерирует для вас красивый отформатированный файл, чтобы вы могли найти запросы, сколько раз были запущены, время блокировки таблицы ... и запускать их один за другим, чтобы увидеть, действительно ли они работают медленно или остаются слишком долго в очереди на исполнение.

Дайте мне знать, если у вас возникнут вопросы.