Show profile 是Mysql从5.0.3版本开始提供的用来分析当前会话中语句执行的资源消耗情况。可以用于sql 调优的测量。show profile能够帮我们了解在sql语句执行过程中时间耗费在了哪些地方。默认情况下,参数处于关闭状态,并保存最近15次的运行结果。长话短说,看看怎么具体怎么使用。
开启profile命令
默认情况下是关闭的,使用前需要手动开启。操作如下:
set profiling=1;
当发起sql查询
SELECT * FROM MYLOCK;
使用命令:show profiles;
查看当前session所有已产生的profile
具体操作过程如下图所示。
上图中的0.00017575就是本次sql执行时间,如果不使用show profiles,我们从MySQL客户端显示的时间只有两位小数时间就是0.00 sec。
通过show profile命令获取SQL语句的开销信息
通过使用show profile来查看上一条SQL语句的开销信息 如下图所示。
show profile 的参数
type是可选的,取值范围可以如下:
ALL 显示所有性能信息
BLOCK IO 显示块IO操作的次数
CONTEXT SWITCHES 显示上下文切换次数,不管是主动还是被动
CPU 显示用户CPU时间、系统CPU时间
IPC 显示发送和接收的消息数量
MEMORY
PAGE FAULTS 显示页错误数量
SOURCE 显示源码中的函数名称与位置
SWAPS 显示SWAP的次数
添加新的查询语句后,继续使用show profiles。
获取以上指定查询的开销(第二条查询的开销明细)
root@localhost[sakila]> show profile for query 2;
查看特定部分的开销
以下为查询CPU部分的开销
除了以上可查询cpu的开销外,还可以查询其他属性的信息。具体可查询的内容和查询语句如下下。