2013-03-18 41 views
1

在MySQL命令行中執行與以下類似的SELECT查詢時。返回MySQL中選擇語句的實際持續時間

SELECT * FROM MASTER LIMIT 1000; 

它返回:

1000行集< 0.00秒>

當它顯然需要大約1.5+秒即可完成。

有誰能告訴我爲什麼會出現這種情況,甚至更好的如何獲得真正的持續時間?

謝謝

+0

難道是網絡延遲? MySQL報告它執行查詢所用的時間,不包括接收查詢和傳輸結果所用的時間......根據設置,在網絡上發送1000行可能需要1.5秒。 – Adrian 2013-03-18 16:29:10

+0

SELECT * FROM MASTER LIMIT 999; SELECT * FROM MASTER LIMIT 1; 奇怪的是,上面的命令在命令行上返回了一個好的時間,但是在Profiler中無法訪問。 – edited 2013-03-18 17:20:34

回答

1

1.5+秒是指從數據庫中獲取行所需的時間。

您可以使用SHOW ENGINE INNODB STATUS打印交易活躍

0

你可以打開分析:

set profiling=1

即可;

show profile for query...

http://dev.mysql.com/doc/refman/5.0/en/show-profile.html

+0

這將返回與命令行相同的值,因此不會修復它(只需要更多的小數點)。這是我一直用於更新和插入語句的方法,其工作得很好。 – edited 2013-03-18 16:50:45