MySQL用Show Profile进行sql分析
Show Profile
是什么:是mysql提供可以用来分析当前会话中语句执行的资源消耗情况。可以用于SQL的调优的测量
官网:http://dev.mysql.com/doc/refman/5.5/en/show-profile.html
默认情况下,参数处于关闭状态,并保存最近15次的运行结果
分析步骤:
1、是否支持,看看当前的mysql版本是否支持
2、开启功能,默认是关闭,使用前需要开启
3、运行SQL:(按余数分组)
select * from emp group by id%10 limit 150000;
select * from emp group by id%20 order by 5;
4、查看结果,show profiles;
5、诊断SQL,show profile cpu, block io for query + 上一步query_ID;
(show profile参数备注)
6、日常开发需要注意的show profile查询结论:(出现以下字段就代表需要优化)
- convertine HEAP to MyISAM:查询结果太大,内存都不够用了往磁盘上搬了
- Create tmp table:创建临时表、拷贝数据到临时表、用完再删除
- Copying to tmp table on disk:把内存中临时表复制到磁盘,危险!!!
- locked