前言
Query Profiler是MYSQL自带的一种query诊断分析工具,通过它可以分析出一条SQL语句的性能瓶颈在什么地方。通常我们是使用的explain,以及slow query log都无法做到精确分析,
但是Query Profiler却可以定位出一条SQL语句执行的各种资源消耗情况,比如CPU,IO等,以及该SQL执行所耗费的时间等。
Show profiles是5.0.37之后添加的,要想使用此功能,要确保版本在5.0.37之后。
登录MySQL查看数据库版本方法
登录:mysql -u username -p
使用想选择的数据库:use databses
查看版本:show variables like "%version%"; 或者 select version();
查看profile是否开启,数据库默认是不开启的
查看方法:
show variables like "%pro%";
设置开启方法:set profiling = 1;
可以开始执行一些想要分析的sql语句了
执行完后 ,查询SQL的执行时间:
show profiles;
即可查看所有sql的总的执行时间。
Query_ID:SQL编号ID;
Duration:SQL执行时间;
Query:SQL语句。
show profile for query 1
即可查看第1个sql语句的执行的各个操作的耗时详情。
查看出一条SQL语句执行的各种资源消耗情况,比如CPU,IO等:
show profile cpu, block io, memory,swaps,context switches,source for query 1
关于show profile all 返回行和列的详解请见下篇文章:MySQL中show profile详解
测试完毕后,关闭参数:set profiling=0