2013-05-08 39 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

+3

QueryでMYSQLクエリの実行時間を取得するにはPHPを使用して時間を見つけるのではなく、クエリそのものにします。とにかくありますか? – TomPHP

+1

これをSQLで実行することもできますが、現在の時刻を取得して差分を取ることができますが、これは正しいタイミングを返しません。 Kapilsのソリューションは正しいものです。さもなければ、これを見てくださいhttp://serverfault.com/questions/32102/hidden-features-of-mysql – JaMaBing

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秒で実行 クエリ

関連する問題