在查询中获取MYSQL查询执行时间

9

我正在开发一个查询浏览器,与一些大型数据库一起工作,需要知道执行查询所需的时间。

在PHPMYADMIN中成功执行查询后,我可以看到所需的时间。

分析或显示行0-29(总共2,000行,查询花费0.0145秒)

例如:分析

SELECT * FROM `larger_table`;


Status                        Time
starting                     0.000026
checking permissions         0.000006
Opening tables               0.000014
System lock                  0.000010
init                         0.000022
optimizing                   0.000004
statistics                   0.000007
preparing                    0.000005
executing                    0.000001
Sending data                 0.014138
end                          0.000004
query end                    0.000002
closing tables               0.000005
freeing items                0.000091
logging slow query           0.000003
cleaning up                  0.000002

在查询浏览器中,我可以在浏览器窗口底部看到所需的时间。那么当提交查询以执行时,如何获取查询的执行时间呢?即,当我提供以下查询时:
SELECT * FROM `larger_table`;

查询应该返回执行时间。

我需要在PHP中捕获并向用户显示。当用户在浏览器中提交某些查询时。

是否有一种方法可以在提交查询时找到执行时间?

请查看图片,我标记了预计时间。 enter image description here

enter image description here

我找到了一些东西查看这个

2个回答

11
请使用下面的代码
$sql_query = 'SELECT * FROM larger_table';
$msc = microtime(true);
mysql_query($sql_query);
$msc = microtime(true) - $msc;
echo $msc . ' seconds'; // in seconds
echo ($msc * 1000) . ' milliseconds'; // in millseconds

3
嗨 Kapil,谢谢你的回复... 但是我在问当我提交查询时执行查询所需的时间.. 当我使用 $mysql_query($sql_query); 时,它应该返回执行所需的时间,而不是被执行的时间... - DonOfDen
3
如何在 MYSQL 查询中获取查询执行时间?我希望在查询中直接获取执行时间,而不是使用 PHP 来查找时间。有没有办法实现? - DonOfDen
1
你也可以在 SQL 中通过获取当前时间并对其进行差异计算来实现,但这样无法返回正确的时间。Kapil 的解决方案是正确的。否则,你应该查看这个链接 http://serverfault.com/questions/32102/hidden-features-of-mysql - JaMaBing
1
你不觉得应该是 echo $msc.' 秒'; // 毫秒 echo ($msc*1000).' 毫秒'; // 秒 吗? - Rahul
3
mysql_query()函数前不需要加美元符号。 - ZurabWeb

2
请看下面 -
$sql_query='SELECT * FROM tablename';
$result = mysql_query($query);
$exec_time_result=mysql_query("SELECT query_id, SUM(duration) FROM information_schema.profiling GROUP BY query_id ORDER BY query_id DESC LIMIT 1;");
if (mysql_errno()) { die( "ERROR ".mysql_errno($link) . ": " . mysql_error($link) ); }
$exec_time_row = mysql_fetch_array($exec_time_result);
echo "<p>Query executed in ".$exec_time_row[1].' seconds';  

输出 - 查询在0.000121秒内执行


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接