1 问题

  • 如何确定服务器是否达到了性能最佳状态
  • 找出某条语句为什么执行不够快
  • 某些间歇性疑难故障

2 性能优化简介

性能:完成某件任务所需要的时间度量

数据库服务器的目的式执行 SQL 语句,所以它关注的任务式查询等语句,如 SELETE、UPDATE、DELETE等。

优化:在一定的工作负载下尽可能地降低响应时间。

如果把性能优化仅仅看成是提升每秒查询量,这其实是吞吐量优化,是性能优化分副产品。

吞吐量:单位时间内的查询数量,是性能定义的倒数。

【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】

2.1 通过性能剖析进行优化

一旦掌握并实践 面向响应时间 的优化方法,就会发现需要不断地对系统进行性能剖析(profiling)。

性能剖析是 测量和分析时间花费在哪里 的主要方法。性能剖析一般分为两个步骤:测量任务所花费的时间、然后对结果进行统计和排序,将重要的任务排在前面

两种类型的性能剖析:基于执行时间的分析基于等待的分析
【 三、服务器性能剖析 】

2.2 理解性能剖析

【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】

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

【 三、服务器性能剖析 】
【 三、服务器性能剖析 】
【 三、服务器性能剖析 】

4 剖析 MySQL 查询

【 三、服务器性能剖析 】

4.1 剖析服务器负载

【 三、服务器性能剖析 】

捕获 MySQL 的查询到日志文件中

【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】

分析查询日志

【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】

4.2 剖析单条查询

【 三、服务器性能剖析 】

使用 SHOW PROFILE

【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】

使用 SHOW STATUS

【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】

使用慢查询日志

【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】

使用 Performance Schema

【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】

4.3 使用性能剖析

【 三、服务器性能剖析 】【 三、服务器性能剖析 】

5 诊断间歇性问题

【 三、服务器性能剖析 】【 三、服务器性能剖析 】

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

【 三、服务器性能剖析 】

使用 SHOW GLOBAL STATUS

【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】

使用 SHOW PROCESSLIST

【 三、服务器性能剖析 】【 三、服务器性能剖析 】

使用查询日志

【 三、服务器性能剖析 】【 三、服务器性能剖析 】

理解发现的问题

【 三、服务器性能剖析 】【 三、服务器性能剖析 】

5.2 捕获诊断数据

【 三、服务器性能剖析 】

诊断触发器

【 三、服务器性能剖析 】【 三、服务器性能剖析 】

需要收集什么样的数据

【 三、服务器性能剖析 】【 三、服务器性能剖析 】

解释结果数据

【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】

5.3 一个诊断案例

【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】

6 其他剖析工具

【 三、服务器性能剖析 】

6.1 使用 USER_STATISTICS 表

【 三、服务器性能剖析 】【 三、服务器性能剖析 】

6.2 使用 strace

【 三、服务器性能剖析 】【 三、服务器性能剖析 】

7 总结

【 三、服务器性能剖析 】【 三、服务器性能剖析 】【 三、服务器性能剖析 】

相关文章: