3.1

3.1.1 通过性能剖析进行优化 - 两种性能剖析:基于执行时间的分析和基于等待的分析 3.1.2 理解性能剖析 - 值得优化的查询 - 异常情况 - 未知的未知: - 被隐藏的细节

3.2 对应用程序进行性能剖析

3.3 剖析MySQL查询

3.3.1 剖析服务器负载

慢查询日志

分析查询日志

  • 以一些典型的时间窗口如业务高峰期的一个小时内记录查询
  • pt-query-digest 分析MySQL查询日志的工具

3.3.2 剖析单条查询

  • show profile 查看时间消耗

  • 直接查询information_schema中对应的表,可以排序

  • 使用show status:返回一些计数器,其中有全局级的、会话级的

  • 使用慢查询日志

  • 使用performance schema

3.3.3 使用性能剖析

3.4 诊断间歇性问题

3.4.1 单条查询问题还是服务器问题

  • 较高频率的执行show global status ,如1秒一次
  • show processlist,观察是否有大量线程处于不正常的状态或者其他不正常的特征。
  • 使用查询日志 3.4.2 捕获诊断数据 3.4.3 一个诊断案例

3.5 其他剖析工具

3.5.1使用user_statistic表 3.5.2 使用strace