一.性能优化间接
我们将性能定义为完成某件任务所需要的时间度量。
很多人在优化时,都将精力放在修改一些东西上,却很少进行精确的测量。
一项任务的时间分为两部分:执行时间和等待时间。
if you want to optimize execution time,the best way is location the time cost by sub-task, and lost some task, or promote the efficiency of sub-task.
But the waiting time is complex, because it can caused by other system.
二.剖析MySQL查询
在MySQL的当前版本中,慢查询日志是开销最低、精度最高的测量查询时间的工具。
三.诊断间歇性问题
间歇性的问题比如系统偶尔停顿或者慢查询,很难诊断。
1.单条查询问题还是服务器问题
(1)使用SHOW GLOBAL STATUS
(2)使用SHOW PROCESSLIST
2.是什么导致了性能低下?
有如下可能的原因:
(1)资源被过度使用,余量已经不足以正常工作。
(2)资源没有被正确配置。
(3)资源已经损坏或者失灵。
四.总结
1.定义性能最有效的方法是响应时间
2.性能优化工作需要基于高质量、全方位及完整的响应时间测量
3.测量的最佳开始点是应用程序,而不是数据库
4.完整的测量会产生大量需要分析的数据,所以需要用到剖析器
5.有两种消耗时间的操作:工作或者等待