Show Profile
show profile是MySQL提供用来分析SQL语句执行资源消耗情况,可以用于SQL调优的度量工作.
使用步骤
-
查看当前MySQL是否支持profiling
SHOW VARIABLES LIKE '%profiling%'
-
开启show profile功能
SET profiling=ON;
-
使用SHOW Profiles查看
SHOW PROFILES;
-
找到执行时间过长的SQL ID
-
结合 show profile 命令查看当前SQL的各资源占用情况
SHOW PROFILE cpu,block io for QUERY 40;
SHOW PROFILE 常用参数
- ALL 显示所有开销信息
- BLOCK IO 显示块IO相关开销
- CONTEXT SWITCHES 上线文切换开销
- CPU CPU相关开销
- IPC 发送和接受相关开销
- MEMORY 内存相关开销
- PAGE FAULTS 页面错误相关开销
- SOURCE 显示source_function source_file source_line相关开销
- SWAPS 显示交换次数相关开销
常见需要注意点
- Converting HEAP to MyISAM 查询结果集过大,内存不够用了往磁盘上写入
- Createing tmp table 创建临时表,拷贝数据到临时表中,用完再删除
- Copying to tmp table on disk 把内存临时表复制到磁盘
- locked 锁耗时