Mysql

使用 MySQL EXPLAIN 分析一個函式的性能

  • August 10, 2017

SELECT你可以在 MySQL 中的語句前面加上EXPLAIN,但是你會如何解釋一個函式呢?我有一個做很多工作的函式,我想從整體上分析該函式的性能。

EXPLAIN 旨在進行查詢,而不是功能或過程。

談到程式碼時,您必須重新像開發人員一樣思考。您會出於什麼目的優化程式碼,尤其是對於數據庫?

  • 簡化程式碼執行

    • 對所有行使用 SQL
    • 通過查詢優化器強制執行 SQL 行為
  • 減少客戶端/伺服器流量

    • 最小化響應
    • 觸發器
  • 分/治複雜的操作

    • 優化相關查詢
    • 避免自聯接
    • 從循環中刪除不必要的語句
    • 使用受控中斷語句(LEAVE 或 CONTINUE)
    • 良好的 IF/CASE 語句
    • 遞歸
    • 游標

不再是 EXPLAIN 查詢的情況。如果你能解釋這個過程,你就可以編碼。顯然,如果你能更快地解釋一個過程,你就能產生更快的程式碼。

這取決於你想做什麼。

如果你想要一個執行計劃,你必須單獨解釋函式內的每個查詢。MySQL 沒有可以為您執行此操作的功能。

如果您只想測量執行時間但函式執行速度太快而無法進行有意義的測量,那麼您可以使用 BENCHMARK() 函式重複呼叫該函式。然後您可以更改函式並再次執行 BENCHMARK() 並比較結果。

引用自:https://dba.stackexchange.com/questions/34162