MySQL 性能剖析
通常指完成某件任务所需要的时间度量,也会考虑吞吐量、CPU利用率和可扩展性等等
性能优化
原则:
- 性能即响应时间:性能优化就是在一定的工作负载下尽可能的降低响应时间;性能优化不是降低 CPU 使用率,降低资源消耗,CPU 和资源就是被用来消耗的,如果机器不超负载的情况下,尽量利用资源提高性能。
- 无法测量就无法优化:要能分析出执行的时间消耗在什么地方,这样才能谈优化
性能剖析
- 测量任务所花费的时间
- 对结果进行排序,将重要的任务排在前面
理解性能剖析
- 值的优化的查询:性能剖析并不会自动给出哪些需要优化,具体的情况需要自己根据实际业务、耗费精力情况来分析。
- 异常情况:有些任务出现的情况少,但是每次出现可能会造成异常或者导致了其他情况,可能虽然不是致命的。但是要认真分析解决,因为它可能是个不定时炸弹。
- 未知:性能剖析的工具会显示可能的“丢失时间”,即任务的实际处理时间和测量时间不一致。需要分析是什么情况造成,应用是不是还存在未知的处理。
- 被掩藏的细节:性能分析的结果不能只看平均值,突刺、标准差百分比等都需要关注
查询剖析
剖析服务器负载
- 日志文件中捕获 MySQL 查询日志,是否存在慢查询日志。慢查询日志是重要的分析依据。
- 利用工具将查询日志解析为报告进行分析
剖析单条查询
使用 SHOW PROFILE
、使用SHOW STATUS
、使用慢查询日志 、使用 Performance Schema 工具针对单条查询语句做分析