概述
是mysq|提供可以用来分析当前会话中语句执行的资源消耗情况,可以用于SQL的调优的测量;
官网
默认情况
参数出于关闭状态,并保存最近51次运行结果;
分析步骤
是否支持,看看当前的mysql版本是否支持
#默认是关闭,使用前需要开启
SHOW variables LIKE 'profiling';
#或者
SHOW variables LIKE 'profiling%';
开启功能,默认是关闭,使用前需要开启
#开启功能
SET profiling = on;
运行SQL
#运行
SELECT id FROM emp ORDER BY id%10 LIMIT 150000;
SELECT * FROM dept;
#查看
SHOW profiles;
查看结果,show profiles;
诊断SQL,show profile cpu,block io for query 上一步前面的问题SQL数字号码
ALL | 显示使用的开销信息 |
BLOCK IO | 显示快IO相关开销 |
CONTEXT SWITCHES | 上下切换相关开销 |
CPU | 显示CPU相关开销信息 |
IPC | 显示发送和接收相关开销信息 |
MEMORY | 显示内存相关开销信息 |
PAGE FAULTS | 显示页面错误相关开销信息 |
SOURCE | 显示和Source_function,Source_file,Source_line相关的开销信息 |
SWAPS | 显示交换次数相关开销的信息 |
日常开发需要注意的结论
converting HEAP to MyISAM查询结果太大,内存都不够用了往磁盘上搬了;
Creating tmp table创建临时表,拷贝数据到临时表,用完再删除;
Copying to tmp table on disk把内存中临时表复制到磁盘,危险! ! !
locked