是什么
是mysql提供可以用来分析当前会话中语句执行的资源消耗情况。可以用于SQL的调优的测量。
官网:点击进入
默认情况下,参数处于关闭状态,开启后默认保存最近15次的运行结果。
分析步骤
- 是否支持,看看当前的mysql版本是否支持
Show variables like 'profiling';
- 开启功能,默认是关闭,使用前需要开启(已开启就忽略此步)
set profiling=on;
- 运行SQL
#emp表有500w数据 select * from emp group by id%10 limit 150000; select * from emp group by id%20 order by 5;
- 查看结果 show profile;
show profile;
- 诊断SQL
show profile cpu,block io for query Query_ID;
- 日常开发需要注意的结论
- converting HEAP to MyISAM
查询结果太大,内存都不够用了往磁盘上搬了。 - Creating tmp table
创建临时表 - Copying to tmp table on disk
把内存中临时表复制到磁盘,危险 - locked
被锁住