Mysql優化必備技能之Explain的使用
阿新 • • 發佈:2018-11-14
一.Explain是什麼
explain是mysql裡面用於分析sql語句在執行計劃的,如下圖,使用方法就是在sql語句之前加上這個關鍵字,然後通過下面的資訊來分析這個sql語句。
二.欄位詳解
1.id:select查詢的序列號,如果id全部相同,則執行順序由上到下。如果id全部不同,遞增,id越大,先被執行查詢。如果id相同不同都有,那麼id相同的一組順序執行,所有組中id越大越先被執行。
2.select_type:查詢的型別,有六種,不太有用的東西,可忽略。
3.type:訪問型別,System(只有一條記錄)到Const(索引一次找到)到eq_ref(每個索引只有一個記錄)到ref(返回匹配的所有行)到range(使用索引選擇行)到all,一般來說,能保證sql語句到range,ref更好,已經可以了。
4.possible_key:顯示可能用到的索引。
5.key:實際使用到的索引。
6.key_len:索引長度。
7.ref:顯示索引的那一列被使用了。
8.rows:系統估計讀取的行數
9.extra:
using filesort:說明你設的索引系統沒有用,它又自己進行檔案內排序,出現這個情況十分糟糕。
using temporary:說明產生了臨時表,一般都是order by和分組group by的時候,這個情況非常非常糟糕。
using index :很好,這個情況最好,表面使用了覆蓋索引,看下圖,emp_name為索引,這樣使用到了索引。