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