Explain各列的含義

markzy5201190發表於2012-06-03

EXPLAIN各列的含義:

idMysql Query Optimizer選定的執行計劃中的序列號(查詢序列號)
select_typeselect查詢的型別,主要是區別普通查詢和聯合查詢、子查詢之類的複雜查詢。
table所引用的表。
type顯示的是訪問型別,結果值從好到壞依次是:
system > const > eq_ref > ref > fulltext > ref_or_null > range > index > ALL

說明:

  • const 讀常量,只讀一次,一般是主鍵
  • eq_ref 最多隻會有一個匹配結果,一般是通過主鍵或者唯一索引來訪問
  • ref 這個連線型別只有在查詢使用了不是惟一或主鍵的鍵或者是這些型別的部分(比如,利用最左邊字首)時發生。對於之前的表的每一個行聯合,全部記錄都將從表中 讀出。這個型別嚴重依賴於根據索引匹配的記錄多少—越少越好
  • unique_subquery 子查詢中返結果欄位組合是主鍵或唯一索引
  • range 索引範圍掃描,使用 > 或 < 時發生
  • index 全索引掃描
  • ALL 全表掃描,這一般比較糟糕,應該儘量避免
possible_keys指出MySQL能使用哪個索引在該表中找到行。如果是空的,沒有相關的索引。
這時要提高效能,可通過檢驗WHERE子句,看是否引用某些欄位,或者檢查欄位不是適合索引。
key顯示MySQL實際決定使用的鍵。如果沒有索引被選擇,鍵是NULL
ref顯示哪個欄位或常數與key一起被使用。
rows通過收集系統資訊估算出來的結果記錄條數
extra查詢中,每一步會進行的額外資訊

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26855487/viewspace-731797/,如需轉載,請註明出處,否則將追究法律責任。

相關文章