是什么?
- 是mysql提供可以用来分析当前会话中语句执行的资源消耗情况。可以用于SQL的调优的测量。
- 默认情况下,参数处于关闭状态,并保存最近15次的运行结果。
怎么用?
-
是否支持,看看当前的mysql版本是否支持
-
开启功能,默认是关闭,使用前需要开启
show VARIABLES like 'profiling';
set profiling=on;
- 运行SQL
select * from emp group by id%10 limit 150000;
select * from emp group by id%20 order by 5;
-
查看结果,show profiles;
image.png -
诊断SQL,show profile cpu,block io for query 上一步前面的问题SQL数字号码
参数备注:
ALL | BLOCK IO | CONTEXT SWITCHES|CPU|IPC|MEMORY|PAGE FAULTS|SOURCE|SWAPS
image.png
- 日常开发需要注意的结论:
1)converting HEAP to MyISAM 查询结果太大,内存狗不够用了,往磁盘上搬了。
2)Creating tmp table 创建临时表 (拷贝数据到临时表,用完再删除)
3)Copying to tmp table on disk 把内存中临时表复制到磁盘 ,危险!!!
4)locked
网友评论