Как я могу измерить время выполнения запроса, не измеряя время, которое он проводит, ожидая освобождения блокировки и т.д.? Моя единственная идея заключалась в том, чтобы постоянно измерять тот же запрос и записывать самое быстрое время.
Измерение фактического времени выполнения MySQL
Ответ 1
Запустите профайлер с помощью
SET profiling = 1;
Затем выполните ваш запрос.
С
SHOW PROFILES;
вы видите список запросов, для которых профилировщик имеет статистику. И, наконец, вы выбираете, какой запрос проверять с помощью
SHOW PROFILE FOR QUERY 1;
или любой номер вашего запроса.
То, что вы получаете, это список, в котором точно сколько времени было потрачено во время запроса.
Дополнительная информация в руководстве .
Ответ 2
Ответ становится недействительным...
SHOW PROFILE[S]
устарели от MySQL 5.6.7 и будут удалены в будущем выпуске MySQL. Вместо этого используйте схему производительности; см. http://dev.mysql.com/doc/refman/5.6/en/performance-schema-query-profiling.html