1. 程式人生 > >Mysql優化必備技能之Explain的使用

Mysql優化必備技能之Explain的使用

一.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為索引,這樣使用到了索引。