2013-05-08 44 views
7

Tôi đang phát triển một trình duyệt truy vấn, làm việc với một số cơ sở dữ liệu lớn và tôi cần biết thời gian thực hiện truy vấn.Để có được thời gian thực hiện truy vấn MYSQL trong Truy vấn

Tôi có thể thấy thời gian khi truy vấn được thực thi thành công trong PHPMYADMIN.

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

Ex: 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 

Trong Query Browser Tôi có thể thấy thời gian cần thiết ở dưới cùng của cửa sổ trình duyệt.

Vậy làm cách nào tôi có thể nhận được thời gian thực hiện truy vấn khi gửi truy vấn để thực thi.

tức là Khi tôi cung cấp cho các truy vấn sau đây:

SELECT * FROM `larger_table`; 

Truy vấn nên trả lại thời gian để thực hiện nó.

Điều này tôi nên bắt bằng PHP và hiển thị cho Người dùng.Khi người dùng cung cấp một số truy vấn để thực thi trong trình duyệt.

Có cách nào để tìm thời gian thực hiện khi truy vấn được gửi không?

Vui lòng kiểm tra Hình ảnh nơi tôi đã đánh dấu thời gian ước tính. enter image description here

enter image description here

Tôi tìm thấy một số điều Check this

Trả lời

9

Vui lòng sử dụng mã dưới đây

$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, Cảm ơn trả lời của bạn .. nhưng tôi hỏi về thời gian thực hiện để thực hiện truy vấn khi tôi gửi nó .. Khi tôi đưa $ mysql_query ($ sql_query); Nó sẽ trả về thời gian cần thiết để thực hiện không khi nó được thực thi ... – TomPHP

+3

Để có được thời gian thực hiện truy vấn MYSQL trong truy vấn .. Tôi muốn điều đó trong chính truy vấn thay vì tìm thời gian bằng cách sử dụng PHP. Không có cách nào khác ư? – TomPHP

+1

bạn có thể làm điều này cũng trong sql bằng cách nhận được thời gian hiện tại và diff chúng, nhưng điều này doesnt trả lại đúng timings. Kapils giải pháp là một trong những quyền. Nếu không, bạn nên có một cái nhìn tại http://serverfault.com/questions/32102/hidden-features-of-mysql – JaMaBing

2

Kiểm tra dưới đây -

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

đầu ra - Query thực hiện trong 0,000121 giây

Các vấn đề liên quan