showprofile是mysql提供用来分析当前会话中语句执行的资源消耗情况,可以用于SQL的调优的测量。默认情况下,参数处于关闭状态,并保存最近15次的运行结果。
开启功能,默认是关闭的,使用前需要开启
show variables like ‘profiling’
开启
set profiling=on;
运行SQL
select * from T_TEST;
查看结果
show profiles;
诊断SQL,show profile cpu,block io for query,上一步前面的问题SQL数字码
show profile cpu,block io for query 3;
如图中显示了一个SQL完整的生命周期。列包含cpu和硬盘io,还有其他
type
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 temp table 创建临时表。拷贝数据到临时表,用完再删除
Coping to tmp table on disk 把内存中临时表复制到磁盘。
Lock 锁了。