我在.sql文件中有一些基準查詢。如果我在mysql中使用源代碼執行它們,mysql將在每次查詢後顯示運行時間。還有頁面和頁面查詢輸出。有什麼方法可以獲得所有查詢的總運行時間?mysql中多個查詢的總運行時間
非常感謝!
我在.sql文件中有一些基準查詢。如果我在mysql中使用源代碼執行它們,mysql將在每次查詢後顯示運行時間。還有頁面和頁面查詢輸出。有什麼方法可以獲得所有查詢的總運行時間?mysql中多個查詢的總運行時間
非常感謝!
感謝您的所有建議。 我最終創建了另一個表,只是爲了記錄每個查詢在.sql文件中的開始和結束時間。
我編輯了.sql文件,在每個原始查詢後面添加一條插入語句來記錄時間。最後,我可以查詢這個「時間」表來分析.sql文件的執行情況。
您可以使用MySQL內置的分析支持加入這行到你的my.cnf
:
SET profiling=1;
這使您可以很容易地看到它了每個查詢的時間:
mysql> SHOW PROFILES;
+----------+-------------+-------------------------------------------------------------------+
| Query_ID | Duration | Query |
+----------+-------------+-------------------------------------------------------------------+
| 1 | 0.33174700 | SELECT COUNT(*) FROM myTable WHERE extra LIKE '%zkddj%' |
| 2 | 0.00036600 | SELECT COUNT(id) FROM myTable |
| 3 | 0.00087700 | CREATE TEMPORARY TABLE foo LIKE myTable |
| 4 | 33.52952000 | INSERT INTO foo SELECT * FROM myTable |
| 5 | 0.06431200 | DROP TEMPORARY TABLE foo |
+----------+-------------+-------------------------------------------------------------------+
5 rows in set (0.00 sec)
你可以他們總結時間得到總時間:
SELECT SUM(Duration) from information_schema.profiling;
你可以找到有關MySQL的性能分析here的更多詳細信息。
您可以運行它的另一種方法是從命令行執行SQL查詢並使用Unix time
命令來執行執行。但是,這可能不會給你最精確的時間。此外,除非您將它與MySQL配置文件結合使用,否則它不會給您詳細列出每個查詢所花費的時間。
非常感謝,aam1r。有沒有辦法顯示查詢和持續時間。我的查詢太長,很難查看。或者有什麼方法可以查詢此「配置文件」表?如果我要再次運行基準測試,如何清理配置文件表? –
@AlfredZhong:我還沒有嘗試過,但我會建議嘗試關閉'information_schema.profiling'的運行查詢 - 就像我們要得到總和一樣。所以,'SELECT Query_ID,Duration FROM information_schema.profiling'來獲取查詢ID和持續時間。也許有更好的方法來做到這一點。如果有的話,我很想知道它。 –
您可以修改.sql以創建帶有時間戳的開始和結束行,然後進行相減,而不必帶出Excel電子表格並添加它。
非常感謝,@Drew。 mysql放置時間戳的語法是什麼? –
從最新的lol中減去最早的時間戳 – Drew
他們被記錄到表中或我們想知道 – Drew