文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  使用 EXPLAIN 優化查詢

10.8.1 使用 EXPLAIN 優化查詢

EXPLAIN 語句提供關於 MySQL 如何執行語句的資訊

EXPLAIN 的協助下,您可以看到應該在資料表中新增索引的位置,以便透過使用索引來尋找列,使語句執行更快。您也可以使用 EXPLAIN 來檢查最佳化工具是否以最佳順序聯結資料表。為了提示最佳化工具使用與 SELECT 語句中資料表名稱順序對應的聯結順序,請以 SELECT STRAIGHT_JOIN 而非單純的 SELECT 開始語句。(請參閱 第 15.2.13 節,「SELECT 語句」。)然而,STRAIGHT_JOIN 可能會阻止索引被使用,因為它會停用半聯結轉換。請參閱 使用半聯結轉換最佳化 IN 和 EXISTS 子查詢述詞

最佳化器追蹤有時可能會提供與 EXPLAIN 互補的資訊。然而,最佳化器追蹤的格式和內容可能會在不同版本之間變更。詳情請參閱MySQL 內部:追蹤最佳化器

如果您認為索引應該被使用,但實際卻沒有使用,請執行 ANALYZE TABLE 以更新表格統計資訊,例如索引鍵的基數,這可能會影響最佳化器的選擇。請參閱第 15.7.3.1 節,「ANALYZE TABLE Statement」

注意

EXPLAIN 也可用於取得表格中欄位的相關資訊。EXPLAIN tbl_name 等同於 DESCRIBE tbl_nameSHOW COLUMNS FROM tbl_name。如需更多資訊,請參閱第 15.8.1 節,「DESCRIBE Statement」第 15.7.7.6 節,「SHOW COLUMNS Statement」