一、介绍
Show profile是mysql提供的可以用来分析当前会话中语句执行的资源消耗情况的工具。可以用于SQL调优的测量,默认情况下,show profile 参数处于关闭状态,并保存最近15次的运行结果。
二、分析步骤
1、是否支持,看看当前的mysql版本是否支持:
Show variables like 'profiling'; #默认是关闭的
2、开启功能,默认是关闭,使用前需要开启:
set profiling = on;
3、运行sql,并显示运行的时间:
show profiles:会记录profile开启之后的每条sql语句的执行持续时间,可据此诊断有问题的sql语句
4、诊断SQL:
#可以查看一条sql语句各个过程中的持续时间
show profile cpu,block io for query 上一步前面的问题SQL数字号码;
5、日常开发需要注意的结论
①converting HEAP to MyISAM 查询结果太大,内存都不够用了往磁盘上搬了
②create tmp table 创建临时表,这个要注意
③Copying to tmp table on disk 把内存临时表复制到磁盘
④locked