mysql解析运行时间_分析 MySQL 语句运行时间

为了验证select 1 与 select 1 from tableName 与 select * from tableName的执行效率,需要测试一下各自执行的时间。于是总结一下,查看mysql语句运行时间的方法。

1. show profiles。

mysql 版本

Query Profiler是MYSQL自带的一种query诊断分析工具,通过它可以分析出一条SQL语句的性能瓶颈在什么地方。通常我们是使用的explain,以及slow query log都无法做到精确分析,Show profiles是5.0.37之后添加的,要想使用此功能,要确保版本在5.0.37之后。

但是Query Profiler却可以定位出一条SQL语句执行的各种资源消耗情况,比如CPU,IO等,以及该SQL执行所耗费的时间等。

查看数据库版本方法:show variables like “%version%”; 或者 select version();

开启 show profile

确定支持show profile 后,查看profile是否开启,数据库默认是不开启的。变量profiling是用户变量,每次都得重新启用。

查看方法: show variables like “%pro%”;

设置开启方法: set profiling = 1;

再次查看show variables like “%pro%”; 已经是开启的状态了。

执行

可以开始执行一些想要分析的sql语句了,执行完后,show profiles;即可查看所有sql的总的执行时间。

mysql> show profiles;

±---------±-----------±-----------------------+

| Query_ID | Duration | Query |

±---------±-----------±-----------------------+

| 1 | 0.00054775 | show tables |

| 2 | 0.00022400 | select * from aa |

| 3 | 0.00026275 | update aa set name=‘d’ |

| 4 | 0.00043000 | delete from bb |

±---------±-----------±-----------------------+

4 rows in set (0.00 sec)

show profile for query 1 即可查看第1个sql语句的执行的各个操作的耗时详情。

show profile cpu, block io, memory,swaps,context switches,source for query 6;可以查看出一条SQL语句执行的各种资源消耗情况,比如CPU,IO等

show profile all for query 6 查看第6条语句的所有的执行信息。

测试完毕后,关闭参数:set profiling=0

2. timestampdiff来查看执行时间。

这种方法有一点要注意,就是三条sql语句要尽量连一起执行,不然误差太大,根本不准

set @d=now();

select * from comment;

select timestampdiff(second,@d,now());

如果是用命令行来执行的话,有一点要注意,就是在select timestampdiff(second,@d,now());后面,一定要多copy一个空行,不然最后一个sql要你自己按回车执行,这样就不准了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值