一、Show Profile
MySQL提供可以用来分析当前会话中语句执行的资源消耗情况,用于SQL的调优的测量
1.1、查看当前版本MySQL是否支持
SHOW VARIABLES LIKE 'profiling'
SHOW VARIABLES LIKE 'profiling%'
1.2、开启 profile
SET profiling=ON
1.3、查看 profile 记录
SHOW PROFILES
1.3、诊断SQL
SHOW PROFILE cpu, block io for QUERY 68
68: 是上次查询profile记录中的 QUERY_ID
- 参数
- ALL:显示所有的开销信息
- BLOCK IO:显示块IO相关开销
- CONTEXT SWITCHES:上下文切换相关开销
- CPU:显示CPU相关开销信息
- IPC:显示发送和接收相关开销信息
- MEMORY:显示内存相关开销信息
- PAGE FAULTS:显示页面错误相关开销信息
- SOURCE:显示和Source_function, Source_file, Source_line相关的开销信息
- SWAPS:显示交换次数相关开销的信息
1.4、重要的性能指标
- converting HEAP to MyISAM 查询结果太大,内存都不够用了往磁盘上搬
- Creating tmp table 创建临时表
- 拷贝数据到临时表
- 用完再删除
- Copying to tmp table on disk 把内存中临时表复制到磁盘,很危险!!!
- locked