2013-05-08 46 views
7

中获取MYSQL查询执行时间我正在开发查询浏览器,使用一些大型数据库,我需要知道执行查询所用的时间。要在查询

一旦查询在PHPMYADMIN中成功执行,我可以看到时间。

分析或Showing rows 0 - 29 (2,000 total, Query took 0.0145 sec)

例如:剖析

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

我发现了一些东西Check this

回答

9

请使用以下

$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

卡皮尔嗨,当我提交感谢您的答复..但我问执行查询所花费的时间它..当我给$ mysql_query($ sql_query);它应该返回执行所需的时间而不是执行时间...... – TomPHP 2013-05-08 07:50:24

+3

在Query中获取MYSQL查询执行时间..我希望在查询本身而不是使用PHP查找时间。无论如何? – TomPHP 2013-05-08 07:59:04

+1

你可以通过获取当前时间和差异来做到这一点,但这不会返回正确的时间。 Kapils解决方案是正确的。否则,你应该看看这个http://serverfault.com/questions/32102/hidden-features-of-mysql – JaMaBing 2013-05-14 13:48:13

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秒

执行 查询