在MySQL命令行中執行與以下類似的SELECT查詢時。返回MySQL中選擇語句的實際持續時間
SELECT * FROM MASTER LIMIT 1000;
它返回:
1000行集< 0.00秒>
當它顯然需要大約1.5+秒即可完成。
有誰能告訴我爲什麼會出現這種情況,甚至更好的如何獲得真正的持續時間?
謝謝
在MySQL命令行中執行與以下類似的SELECT查詢時。返回MySQL中選擇語句的實際持續時間
SELECT * FROM MASTER LIMIT 1000;
它返回:
1000行集< 0.00秒>
當它顯然需要大約1.5+秒即可完成。
有誰能告訴我爲什麼會出現這種情況,甚至更好的如何獲得真正的持續時間?
謝謝
1.5+秒是指從數據庫中獲取行所需的時間。
您可以使用SHOW ENGINE INNODB STATUS
打印交易活躍
你可以打開分析:
set profiling=1
即可;
show profile for query...
這將返回與命令行相同的值,因此不會修復它(只需要更多的小數點)。這是我一直用於更新和插入語句的方法,其工作得很好。 – edited 2013-03-18 16:50:45
難道是網絡延遲? MySQL報告它執行查詢所用的時間,不包括接收查詢和傳輸結果所用的時間......根據設置,在網絡上發送1000行可能需要1.5秒。 – Adrian 2013-03-18 16:29:10
SELECT * FROM MASTER LIMIT 999; SELECT * FROM MASTER LIMIT 1; 奇怪的是,上面的命令在命令行上返回了一個好的時間,但是在Profiler中無法訪問。 – edited 2013-03-18 17:20:34