Як я можу виміряти час виконання запиту, не вимірюючи час, який він витрачає на очікування випуску блокування тощо? Моєю єдиною ідеєю було постійно вимірювати один і той самий запит і фіксувати найшвидший час.
Відповіді:
Почніть профайлер з
SET profiling = 1;
Потім виконайте свій запит.
С
SHOW PROFILES;
Ви бачите список запитів, для яких є статистика профілювача. І нарешті, ви обираєте, за яким запитом слід розглядати
SHOW PROFILE FOR QUERY 1;
або будь-який номер вашого запиту.
Ви отримаєте список, де саме було витрачено часу під час запиту.
Більше інформації в посібнику.
sending data
. Або що завгодно для покращення продуктивності. Я не бачу сенсу повідомляти користувачів, чому вони повинні так довго чекати. Їм насправді все одно.
Прийнята відповідь стає недійсною ...
SHOW PROFILE[S]
є застарілим MySQL 5.6.7 і будуть видалені в випуску майбутнього MySQL. Натомість використовуйте схему продуктивності; див. http://dev.mysql.com/doc/refman/5.6/en/performance-schema-query-profiling.html
show profiles
працюю належним чином