Лог MySQL медленный запрос в режиме реального времени

Я хотел бы знать, возможно ли зарегистрировать (или обнаружить другим способом) запрос, выполнение которого занимает слишком много времени, как только он достигнет long_query_time. Поскольку MySQL регистрирует медленные запросы, только когда они закончили выполнение.

Я знаю, что вижу медленные запросы до их завершения, проверив вкладку "Соединения с сервером" в MySQL Administrator, но я хотел бы получать автоматические уведомления, когда это происходит (это проще с журналами).

1 ответ

Решение

Если вы хотите опросить базу данных, чтобы проверить, выполняется ли запрос дольше, чем x секунд, вы можете использовать show processlist или перейти непосредственно к таблице списка процессов.

select * from INFORMATION_SCHEMA.PROCESSLIST where time > TIME_IN_SECS

Это увеличит нагрузку на базу данных, поэтому я бы не рекомендовал делать это каждую секунду. Но это будет означать, что вы не получите информацию "как только она достигнет long_query_time".

Другие вопросы по тегам