MySQL 性能剖析

通常指完成某件任务所需要的时间度量,也会考虑吞吐量、CPU利用率和可扩展性等等

性能优化

原则:

  • 性能即响应时间:性能优化就是在一定的工作负载下尽可能的降低响应时间;性能优化不是降低 CPU 使用率,降低资源消耗,CPU 和资源就是被用来消耗的,如果机器不超负载的情况下,尽量利用资源提高性能。
  • 无法测量就无法优化:要能分析出执行的时间消耗在什么地方,这样才能谈优化

性能剖析

  • 测量任务所花费的时间
  • 对结果进行排序,将重要的任务排在前面

理解性能剖析

  • 值的优化的查询:性能剖析并不会自动给出哪些需要优化,具体的情况需要自己根据实际业务、耗费精力情况来分析。
  • 异常情况:有些任务出现的情况少,但是每次出现可能会造成异常或者导致了其他情况,可能虽然不是致命的。但是要认真分析解决,因为它可能是个不定时炸弹。
  • 未知:性能剖析的工具会显示可能的“丢失时间”,即任务的实际处理时间和测量时间不一致。需要分析是什么情况造成,应用是不是还存在未知的处理。
  • 被掩藏的细节:性能分析的结果不能只看平均值,突刺、标准差百分比等都需要关注

查询剖析

剖析服务器负载

  • 日志文件中捕获 MySQL 查询日志,是否存在慢查询日志。慢查询日志是重要的分析依据。
  • 利用工具将查询日志解析为报告进行分析

剖析单条查询

使用 SHOW PROFILE、使用SHOW STATUS、使用慢查询日志 、使用 Performance Schema 工具针对单条查询语句做分析