2013-05-08 14 views
7

Sto sviluppando un browser di query, lavorando con un database di grandi dimensioni e ho bisogno di sapere il tempo impiegato per l'esecuzione della query.Per ottenere il tempo di esecuzione della query MYSQL nella query

È possibile vedere l'ora quando la query viene eseguita correttamente in PHPMYADMIN.

Profiling o Showing rows 0 - 29 (2,000 total, Query took 0.0145 sec)

Es: Profiling

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 

In Query Browser posso vedere il tempo impiegato nella parte inferiore della finestra del browser.

Quindi, come posso ottenere il tempo di esecuzione della query quando inviare la query per l'esecuzione.

cioè Quando do la seguente query:

SELECT * FROM `larger_table`; 

La query deve restituire il tempo per l'esecuzione di esso.

Questo dovrei prendere in PHP e mostrare agli utenti. Quando l'utente dà qualche query da eseguire nel browser.

C'è un modo per trovare il tempo di esecuzione quando viene inviata la query.?

Si prega di controllare le immagini dove ho segnato il tempo stimato. enter image description here

enter image description here

ho trovato qualche cosa Check this

risposta

9

Si prega di utilizzare il codice qui sotto

$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

Hi Kapil, Grazie per la risposta .. ma sto chiedendo il tempo necessario per eseguire la query quando sto sottopone it .. Quando do $ mysql_query ($ sql_query); Dovrebbe restituire il tempo necessario per l'esecuzione non quando viene eseguito ... – TomPHP

+3

Per ottenere il tempo di esecuzione della query MYSQL in Query .. Lo voglio nella query stessa piuttosto che trovare il tempo usando PHP. C'è comunque? – TomPHP

+1

puoi farlo anche in sql ottenendo l'ora corrente e differirli, ma questo non restituisce i tempi corretti. La soluzione di Kapils è quella giusta. Altrimenti dovresti dare un'occhiata a questo http://serverfault.com/questions/32102/hidden-features-of-mysql – JaMaBing

2

Partenza qui sotto -

$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'; 

uscita - query eseguita in 0.000121 secondi

Problemi correlati