mysql explain欄位說明

2021-06-26 21:48:09 字數 1787 閱讀 9070

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 ...