2013-06-10 6 views
0

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

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

+0

Не удалось настроить какую-либо запланированную задачу для опроса той же информации, которую вы видите на вкладке «Соединения с сервером» в администраторе MySQL, что реально связано с медленными запросами. Если вы ожидаете, что что-то будет медленным, вы должны следить за ним, чтобы иметь возможность правильно оптимизировать/настроить? –

ответ

1

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

select * from INFORMATION_SCHEMA.PROCESSLIST where time > TIME_IN_SECS 

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

+0

Ну, моя потребность не совсем такая, как я описал, мне просто нужно знать длинный запрос, который мог бы заблокировать один из моих потоков в моем приложении Java. –

Смежные вопросы