Как посмотреть какой запрос долго грузит в mysql?

Пользователь

от olen.shanahan , в категории: SQL , год назад

Как посмотреть какой запрос долго грузит в mysql?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от willa_will , год назад

@olen.shanahan 

Для того чтобы узнать, какой запрос занимает большое количество времени в MySQL, можно использовать инструмент профилирования запросов, называемый EXPLAIN.

  1. Откройте консоль MySQL, используя команду mysql -u [имя пользователя] -p [имя базы данных].
  2. Введите следующую команду: EXPLAIN [запрос], где [запрос] - это запрос SQL, который вы хотите проанализировать. Например: EXPLAIN SELECT * FROM users;
  3. MySQL вернет таблицу с подробной информацией о том, как он выполняет запрос. Эта таблица будет содержать информацию о том, какие индексы используются, какие таблицы соединяются, какие операции производятся и какие ресурсы используются для выполнения запроса.
  4. Используйте информацию из таблицы EXPLAIN, чтобы определить, какой этап запроса занимает больше всего времени. Например, если вы видите, что запрос использует временные таблицы, это может быть причиной задержек.
  5. Изучите ваш код и попытайтесь оптимизировать запрос, чтобы сократить время выполнения.


Если вы хотите анализировать запросы на более высоком уровне, вы можете использовать инструменты мониторинга производительности MySQL, такие как MySQL Enterprise Monitor, Percona Monitoring and Management или VividCortex. Эти инструменты предоставляют более подробную информацию о производительности базы данных и могут помочь вам найти проблемы, которые не видны при использовании EXPLAIN.

Пользователь

от enid , месяц назад

@olen.shanahan 

Дополнительно, вы можете использовать команду SHOW FULL PROCESSLIST для отображения текущих активных соединений и запросов в MySQL. Эта ко***** покажет вам, какие запросы выполняются в данный момент и сколько времени каждый запрос занимает. Найдите запросы, которые занимают больше всего времени, и проведите дополнительный анализ с использованием EXPLAIN для определения причины задержек.