MySQL EXPLAIN語句的使用
MySQL EXPLAIN語句可以獲得關于MySQL如何執行SELECT語句的信息,下面就為您介紹該語句的使用說明,供您參考學習。
EXPLAIN tbl_name
或:EXPLAIN [EXTENDED] SELECT select_options
MySQL EXPLAIN語句可以用作DESCRIBE的一個同義詞,或獲得關于MySQL如何執行SELECT語句的信息:
EXPLAIN tbl_name是DESCRIBE tbl_name或SHOW COLUMNS FROM tbl_name的一個同義詞。·
如果在SELECT語句前放上關鍵詞EXPLAIN,MySQL將解釋它如何處理SELECT,提供有關表如何聯接和聯接的次序。
借助于MySQL EXPLAIN語句,可以知道什么時候必須為表加入索引以得到一個使用索引來尋找記錄的更快的SELECT。如果由于使用不正確的索引出現了問題,應運行ANALYZE TABLE更新表的統計(例如關鍵字集的勢),這樣會影響優化器進行的選擇。
還可以知道優化器是否以一個***次序聯接表。為了強制優化器讓一個SELECT語句按照表命名順序的聯接次序,語句應以STRAIGHT_JOIN而不只是SELECT開頭。
MySQL EXPLAIN語句為用于SELECT語句中的每個表返回一行信息。表以它們在處理查詢過程中將被MySQL讀入的順序被列出。MySQL用一遍掃描多次聯接(single-sweep multi-join)的方式解決所有聯接。這意味著MySQL從***個表中讀一行,然后找到在第二個表中的一個匹配行,然后在第3個表中等等。當所有的表處理完后,它輸出選中的列并且返回表清單直到找到一個有更多的匹配行的表。從該表讀入下一行并繼續處理下一個表。
當使用EXTENDED關鍵字時,EXPLAIN產生附加信息,可以用SHOW WARNINGS瀏覽。該信息顯示優化器限定SELECT語句中的表和列名,重寫并且執行優化規則后SELECT語句是什么樣子,并且還可能包括優化過程的其它注解。
【編輯推薦】