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語句是什麼樣子,並且還可能包括優化過程的其它注解。
mysql索引的不足
MySql連接字符串的說明
mysql觸發器的三個狀態
建立MySQL觸發器的語法
帶您深入了解MySQL ifnull()函數