MySQL show profile
MySQL show profile
show profile是MySQL提供的可以用来分析当前会话中语句执行的资源消耗情况的工具,可以用于sql调优的测量。默认是处于关闭状态的,会保存最近15次的运行结果。
1.查看状态
show variables like 'profiling';
2.开启show profile
默认是关闭的,执行以下语句将其开启:
set profiling='on';
3.服务器执行sql
执行完要分析的sql后,执行show profile语句获取执行sql的query_id
4.通过query_id查看sql执行情况
根据查询id查询出该条sql执行的具体情况,如:
show profile cpu,block io for query 2;
show profile 选项:
| column | description |
|---|---|
| all | 所有的开销信息 |
| block io | 块io相关开销信息 |
| context switches | 上下文切换相关开销信息 |
| cpu | cpu相关开销信息 |
| ipc | 发送和接收相关开销信息 |
| memory | 内存相关开销信息 |
| page faults | 页面错误相关开销信息 |
| source | source_function,source_file,source_line相关开销信息 |
| swaps | 交换次数相关开销信息 |
show profile的结果如果有如下四个之一,表示sql可能存在性能问题:
- converting heap to MyISAM是查询出来的结果集太大,内存不够用
- creating temp table是创建了临时表,也非常耗时
- copying to temp table on disk是把内存中的临时表复制到了磁盘中,特别耗时
- locked是表被锁了

浙公网安备 33010602011771号