【发布时间】:2012-07-01 18:12:37
【问题描述】:
如何在不测量等待锁定释放等的时间的情况下测量查询的执行时间?我唯一的想法是不断测量相同的查询并记录最快的时间。
【问题讨论】:
标签: mysql optimization
如何在不测量等待锁定释放等的时间的情况下测量查询的执行时间?我唯一的想法是不断测量相同的查询并记录最快的时间。
【问题讨论】:
标签: mysql optimization
使用
启动分析器SET profiling = 1;
然后执行您的查询。
有
SHOW PROFILES;
您会看到探查器具有统计信息的查询列表。最后,您选择要检查的查询
SHOW PROFILE FOR QUERY 1;
或您查询的任何数字。
你得到的是一个列表,其中确切地在查询期间花费了多少时间。
更多信息在manual.
【讨论】:
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 仍然可以正常工作