2013-05-08 19 views
7

Pracuję nad przeglądarką zapytań, pracując z dużą bazą danych i potrzebuję znać czas potrzebny na wykonanie zapytania.Aby uzyskać czas wykonywania kwerendy MYSQL w zapytaniu

Widzę czas po pomyślnym wykonaniu zapytania w PHPMYADMIN.

Profilowanie lub Showing rows 0 - 29 (2,000 total, Query took 0.0145 sec)

Ex: Profilowanie

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 

W Query Browser widzę czas potrzebny w dolnej części okna przeglądarki.

Więc w jaki sposób uzyskać czas wykonania kwerendy po przesłaniu kwerendy do wykonania.

tj Kiedy daję następujące zapytanie:

SELECT * FROM `larger_table`; 

Kwerenda powinna wrócić czas na wykonanie go.

To powinienem złapać w PHP i pokazać użytkownikom. Kiedy użytkownik daje jakieś zapytanie do wykonania w przeglądarce.

Czy istnieje sposób na znalezienie czasu wykonania, gdy zapytanie zostanie przesłane.?

Prosimy o sprawdzenie zdjęć, w których oznaczono szacowany czas. enter image description here

enter image description here

znalazłem kilka rzeczy Check this

Odpowiedz

9

proszę skorzystać z poniższego

$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, Dzięki za odpowiedź .. Ale pytam o czas potrzebny do wykonania zapytania, kiedy jestem składania to .. Kiedy podaję $ mysql_query ($ sql_query); Powinien on zwrócić czas potrzebny do wykonania nie, kiedy jest wykonywany ... – TomPHP

+3

Aby uzyskać czas wykonania zapytania MYSQL w Zapytaniu. Chcę to w samym zapytaniu, a nie znajdowanie czasu za pomocą PHP. Czy jest jakiś sposób? – TomPHP

+1

możesz to zrobić również w sql, pobierając bieżący czas i porównując je, ale to nie zwraca poprawnych czasów. Rozwiązanie Kapils jest właściwe. W przeciwnym razie powinieneś rzucić okiem na ten http://serverfault.com/questions/32102/hidden-features-of-mysql – JaMaBing

2

Sprawdź poniżej -

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

wyjście - Zapytanie wykonywane w 0.000121 sekund

Powiązane problemy