Làm cách nào để tôi có thể đo thời gian thực thi của một truy vấn mà không đo thời gian nó dành cho việc chờ giải phóng khóa, v.v.? Ý tưởng duy nhất của tôi là liên tục đo lường cùng một truy vấn và ghi lại thời gian nhanh nhất.
Câu trả lời:
Bắt đầu trình biên dịch bằng
SET profiling = 1;
Sau đó thực hiện Truy vấn của bạn.
Với
SHOW PROFILES;
bạn sẽ thấy danh sách các truy vấn mà trình biên dịch có thống kê. Và cuối cùng, bạn chọn truy vấn để kiểm tra
SHOW PROFILE FOR QUERY 1;
hoặc bất kỳ số nào mà truy vấn của bạn có.
Những gì bạn nhận được là một danh sách trong đó chính xác lượng thời gian đã được sử dụng trong quá trình truy vấn.
Thông tin thêm trong sách hướng dẫn.
sending data
. Hoặc bất cứ điều gì cần thiết để cải thiện hiệu suất. Tôi thấy chẳng ích gì khi cho người dùng biết, tại sao họ phải đợi lâu như vậy. Thực ra họ không quan tâm.
Câu trả lời được chấp nhận đang trở nên không hợp lệ ...
SHOW PROFILE[S]
không được dùng nữa kể từ MySQL 5.6.7 và sẽ bị xóa trong bản phát hành MySQL trong tương lai. Sử dụng Lược đồ hiệu suất thay thế; xem http://dev.mysql.com/doc/refman/5.6/en/performance-schema-query-profiling.html
show profiles
làm việc đúng