本人随记,内容不一定百分百正确。
MySQL5.0.37版本及其以上支持了Profiling – 官方手册。此工具可用来查询 SQL 会执行多少时间,System lock和Table lock 花多少时间等等,对定位一条语句的 I/O消耗和CPU消耗 非常重要。
从启动profile之后的所有查询包括错误的语句都会记录。
关闭或者set profiling=0 就关闭了。接下来,我们就粗略的来看看profiling的用法。
首先,我们先链接上测试的数据库,查看profiling是否开启,我们执行以下语句:
show profiles; 发现未开启这个工具,我们把它开启,以便接下来测试。
开启profiling: set profiling = 1;
查看可知profiling已经开启。
接下来,我们就可以来测试我们的查询语句的耗时情况:
select * from si_qrcode_0 where sn='156250';
并输入show profiles;来查看语句执行情况。
我们也可以执行以下语句,来查看(query_id = 2)这条语句的详细耗时情况:
show profile for query 2;
查看具体一条(Query_ID=3 这一条)语句的profiles,包括CPU和柱塞I/O的情况.
show profile cpu, block io for query 2;
上面就获得了一条语句的CPU和Block IO消耗,对定位瓶颈很方便.