explain列的解釋:
id:查詢的序列號
select_type:select查詢的型別,主要是區別普通查詢和聯合查詢、子查詢之類的複雜查詢。
table:所訪問的資料庫中表的名稱。
type:這是重要的列,顯示連線使用了何種型別。從最好到最差的連線型別為const、eq_reg、ref、range、indexhe和all
type顯示的是訪問型別,是較為重要的乙個指標,結果值從好到壞依次是:
system(系統表)>const(讀常量)>eq_ref(最多一條匹配結果,通常是通過主鍵訪問)>ref(被驅動表索引引用)>fulltext(全文索引檢索)>ref_or_null(帶空值的索引查詢)>index_merge(合併索引結果集)>unique_subquery(子查詢中返回的字段是唯一組合或索引)>index_subquery(子查詢返回的是索引,但非主鍵)>range(索引範圍掃瞄)>index(全索引掃瞄)>all(全表掃瞄)
一般來說,得保證查詢至少達到range級別,最好能達到ref。 all是最壞的情況,這種情況表示沒有使用索引。
possible_keys :
指出mysql能使用哪個索引在該表中找到行。如果是空的,沒有相關的索引。這時要提高效能,可通過檢驗where子句,看是否引用某些字段,或者檢查字段不是適合索引。
key:
顯示mysql實際決定使用的鍵。如果沒有索引被選擇,鍵是null。
key_len:
顯示mysql決定使用的鍵長度。如果鍵是null,長度就是null。文件提示特別注意這個值可以得出乙個多重主鍵裡mysql實際使用了哪一部分。
ref:
顯示哪個欄位或常數與key一起被使用。
rows:
這個數表示mysql要遍歷多少資料才能找到,在innodb上是不準確的。
extra:
如果是only index,這意味著資訊只用索引樹中的資訊檢索出的,這比掃瞄整個表要快。 如果是where used,就是使用上了where限制。 如果是impossible where,則表示通過收集到的統計資訊判斷出不可能存在的結果。除此之外,extra還有下面可能的一些值:
using filesort:表示包含orderby且無法使用索引進行排序操作時,不得不使用相應的排序演算法實現。
using temporary:使用臨時表,常用於order by 和 group by。
select tables optimized way:使用聚合函式,並且mysql進行了快速定位。通常是max,min,count(*)等函式。
MySQL explain欄位解釋
1.select type 它表示簡單的select,沒有union和子查詢 dependent union union依賴外層的查詢 dependent subquery subquery依賴外層的查詢 2.type system 表僅有一行,這是const型別的特列,平時不會出現,一般出現在my...
mysql explain查詢結果字段說明
1 id 這是select的查詢序列號 2 select type select type就是select的型別,可以有以下幾種 簡單select 不使用union或子查詢等 primary 最外面的select union union中的第二個或後面的select語句 dependent unio...
mysql explain 各個欄位的含義
1 id列數字越大越先執行,如果說數字一樣大,那麼就從上往下依次執行,id列為null的就表是這是乙個結果集,不需要使用它來進行查詢。2 select type列常見的有 a 表示不需要union操作或者不包含子查詢的簡單select查詢。有連線查詢時,外層的查詢為 且只有乙個 b primary ...