目录
一、Show Profile是什么
- 一、Show Profile是什么
- 二、Show Profile分析步骤
- Show Profile是mysql提供可以用来分析当前会话中语句执行的资源消耗情况。可以用于SQL的调优的测量。
- 官网:http://dev.mysql.com/doc/refman/5.5/en/show-profile.html
- 默认情况下,参数处于关闭状态,并保存最近15次的运行结果。
1、是否支持,看看当前的mysql版本是否支持
SHOW VARIABLES LIKE 'profiling';
2、开启功能,默认是关闭,使用前需要开启
SET profiling=1;
3、建表及批量导入的数据参考此博文链接
https://wwwxz.blog.csdn.net/article/details/115100498
4、运行SQL
-
根据emp表的id模10之后,根据余数分组查询的SQL
#id模10之后根据余数分组查询 SELECT * FROM emp GROUP BY id%10 LIMIT 5000;
-
根据emp表的id模20之后,根据余数分组查询的SQL
SELECT * FROM emp GROUP BY id%20 ORDER BY 5
5、查看结果
SHOW PROFILES;
6、诊断SQL
# 查看cpu和block io ,(n为上一步前面的问题SQL数字号码)
SHOW PROFILE cpu,block io FOR QUERY n
注:参数备注
7、日常开发需要注意的结论(即出现下面4项中的任何一项,都表示sql语句需要优化)
- converting HEAP to MyISAM :表示查询结果太大,内存都不够用了往磁盘上搬了。
- Creating tmp table :表示创建临时表,因为创建临时表需要拷贝数据到临时表,用完再删除,查询较慢
- Copying to tmp table on disk:表示把内存中临时表复制到磁盘,危险!!!
- locked:锁定了