Jak mogę zmierzyć czas wykonania zapytania bez mierzenia czasu spędzonego na oczekiwaniu na zwolnienie blokady itp.? Moim jedynym pomysłem było ciągłe mierzenie tego samego zapytania i rejestrowanie najszybszego czasu.
Odpowiedzi:
Uruchom profilera z
SET profiling = 1;
Następnie wykonaj zapytanie.
Z
SHOW PROFILES;
zobaczysz listę zapytań, dla których profiler ma statystyki. Na koniec wybierasz, z którym zapytaniem chcesz się zapoznać
SHOW PROFILE FOR QUERY 1;
lub jakikolwiek numer ma twoje zapytanie.
Otrzymasz listę, na której dokładnie, ile czasu zostało spędzone podczas zapytania.
Więcej informacji w instrukcji.
sending data
. Lub cokolwiek, co zwiększy wydajność. Nie widzę sensu informowania użytkowników, dlaczego muszą czekać tak długo. Właściwie to ich nie obchodzi.
Zaakceptowana odpowiedź traci ważność ...
SHOW PROFILE[S]
są przestarzałe od MySQL 5.6.7 i zostaną usunięte w przyszłej wersji MySQL. Zamiast tego użyj schematu wydajności; zobacz http://dev.mysql.com/doc/refman/5.6/en/performance-schema-query-profiling.html
show profiles
poprawnie