2012-07-07 20 views
1

這是機器只執行查詢還是包含時間機器顯示查詢的時間?MySQL查詢結果下的時間是什麼意思?

我問這個問題,因爲我從我的電腦訪問遠程MySQL服務器,我收到的結果是~5000條記錄~15秒。但是我在同一個用戶的這個遠程MySQL服務器上做同樣的事情,我在0.02秒內收到5000條記錄。

爲什麼兩個時間不同?

+0

它很可能是:運行查詢所需的時間+將時間轉移並顯示給客戶端。所以它在客戶端已經過去了,而不是服務器上的執行時間。事實上,它需要15秒的遠程,本地0.02s顯示這是這種情況:) – Casper 2012-07-07 11:30:48

+0

我不認爲它包括它顯示的時間。因爲他們這次測量的方式對於遠程和本地來說是一樣的。在當地,它只需要0.02s,太短!但我必須等3-4秒才能查看所有記錄。任何人都可以告訴我來源顯示他們衡量執行時間的方式嗎? :( – 2012-07-07 12:13:43

+0

你在這裏看到了什麼?在MySQL控制檯中? – halfer 2012-07-07 12:27:53

回答

0

這意味着DBMS執行查詢所需的時間(根據其查詢計劃)。

1

如果你真正想要做的是測量服務器執行時間,那麼也許你想看看
SHOW PROFILES

例子:

mysql> set profiling = 1; 

mysql> select count(*) from xyz; 
+----------+ 
| count(*) | 
+----------+ 
| 10697 | 
+----------+ 
1 row in set (0.02 sec) 

mysql> show profiles; 
+----------+------------+--------------------------------+ 
| Query_ID | Duration | Query       | 
+----------+------------+--------------------------------+ 
|  1 | 0.01904200 | select count(*) from xyz  | 
+----------+------------+--------------------------------+ 
1 row in set (0.00 sec) 
1

爲什麼它需要多一點時間的原因是

  • 執行查詢遠程
  • 執行查詢本地

網絡傳輸在查詢通過網絡運行時還需要考慮時間。您可以結帳這篇文章,以更好地理解network latency