2012-02-22 40 views
12

Tôi đang làm việc trên máy chủ Linux có lệnh mysql. Tôi có một kịch bản chạy hàng loạt lệnh mysql (như mysql -e "select...") và tôi muốn tóm tắt thời gian thực hiện của mỗi lệnh.thời gian thực thi dòng lệnh mysql?

Có cách nào để có được thời gian thực hiện mysql từ dòng lệnh không?

Ví dụ, trong chế độ tương tác mysql, kết quả thực hiện đi kèm với một thời gian, như thế này:

mysql> select count(*) from trialtable; 
+----------+ 
| count(*) | 
+----------+ 
|  4000 | 
+----------+ 
1 row in set (0.00 sec) 

Tôi có thể có cùng một cấu hình trong dòng lệnh?

Cảm ơn bạn

+0

Trò chơi có công bằng để ném 'thời gian' trước các lệnh không? Hoặc bạn có muốn thời gian thực thi _real_ mà MySQL tiêu thụ trong khi tính toán kết quả không? – sarnold

+0

@sarnold Có, tôi muốn xem thời gian "thực". –

Trả lời

3

Đây là cú pháp chính xác cho PHP.

mysql_query("SET profiling = 1;"); 
if (mysql_errno()) { die("ERROR ".mysql_errno($link) . ": " . mysql_error($link)); } 

$query="SELECT some_field_name FROM some_table_name"; 
$result = mysql_query($query); 
if (mysql_errno()) { die("ERROR ".mysql_errno($link) . ": " . mysql_error($link)); } 

$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

Bạn có thể gọi mysql với -vv, nó sẽ khá-in tương tự như khi bạn đang ở trong chế độ tương tác:

$ mysql -vv -u myUser -pMyPass DBname -e 'select count(*) from mytable;' 
-------------- 
select count(*) from mytable 
-------------- 

+----------+ 
| count(*) | 
+----------+ 
| 1068316 | 
+----------+ 
1 row in set (0.00 sec) 

Bye 

Nếu bạn đang đường ống truy vấn của bạn, sau đó nó -vvv:

$ echo 'select count(*) from mytable;' | mysql -vvv -u myUser -pMyPass DBname 
-------------- 
select count(*) from mytable 
-------------- 

+----------+ 
| count(*) | 
+----------+ 
| 1068316 | 
+----------+ 
1 row in set (1.34 sec) 

Bye 

Thời gian là của bạn để grep. : D

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