MySQL-mysql怎样得到一条SQL语句精确到ms级的执行时间

发布于 2017-01-20 10:05:18 字数 175 浏览 1481 评论 4

现在因为工作需要得到MYSQL的执行时间,就像PHPMYADMIN中的那样,如图,有这种SQL语句吗?

请输入图片描述

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

清晨说ぺ晚安 2017-07-09 00:58:39

mysql执行前记时,执行mysql查询,用执行前的时间-当前时间不就是mysql的查询时间么?

偏爱自由 2017-07-01 10:32:28

基本方法应该就是:在执行SQL语句前保存下时间A,执行结束后再保存下时间B。
计算两次时间差就应该可以了,不过这种情况除非执行的SQL语句涉及数据量很大(至少要达到秒的级别上),否则前后两个时间不会有区别。
因为现在程序里计算时间的好像还没有能直接达到毫秒级别的吧。
嗯查看了下,有一个计算微秒的函数micortime(),可以返回当前UNIX时间戳和微秒数。返回浮点数单位为秒。不过函数仅在支持gettimeofday()系统调用的操作系统下可用。可以查下手册详细了解下。

想挽留 2017-06-19 19:40:12

在终端执行,运行完就显示出来了

夜无邪 2017-06-09 05:24:00

大概看了一下phpmyadmin中的代码,获得query执行时间如下:

// garvin: Measure query time.
// TODO-Item http://sourceforge.net/tracker/index.php?func=detail&aid=571934&group_id=23067&atid=377411

$querytime_before = array_sum(explode(' ', microtime()));
$result   = @PMA_DBI_try_query($full_sql_query, null, PMA_DBI_QUERY_STORE);
$querytime_after = array_sum(explode(' ', microtime()));
$GLOBALS['querytime'] = $querytime_after - $querytime_before;

除了这种方式还可以使用mysql的profile,可以参考 @php里sql执行时间的监控?
这个更适合统计多条sql的执行情况。我见过好像是一个博客,访问页面之后会有一个提示大概说共查询了几次数据库,用了多长时间查询数据,那么开启mysql的profile就可以轻松实现了。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文