標籤:ext 暫存資料表 rar str 檔案小 不能 最佳化 nbsp pen
1.select_type
simple :它表示簡單的select,沒有union和子查詢
dependent union:union依賴外層的查詢
dependent subquery:subquery依賴外層的查詢
2.type
system:表僅有一行,這是const類型的特列,平時不會出現,一般出現在mysql內建系統資料表中
const :表最多有一個匹配行,const用於比較primary key 或者unique索引。因為只匹配一行資料,所以很快
eq_ref:對於每個來自於前面的表(串連表)的行,只從該表(被串連表)中讀取一行。這可能是最好的聯結類型,除了const類型。它用在一個索引的所有部分被聯結使用並且索引是UNIQUE或PRIMARY KEY"。eq_ref可以用於使用=比較帶索引的列。
ref :對於每個來自於前面的表的行組合,所有有匹配索引值的行將從這張表中讀取。如果不能滿足只去一行的情況,會使用索引,則使用ref。如果使用的鍵僅僅匹配少量行,該聯結類型是不錯的。
range :給定範圍內的檢索,比如 in(xx,xxxx) 或者 between
index :該聯結類型與ALL相同,除了只有索引樹被掃描。這通常比ALL快,因為索引檔案通常比資料檔案小,一般在使用了覆蓋索引最佳化的情況下使用
all: 對於每個來自於先前的表的行組合,進行完整的表掃描。
index_merge:該聯結類型表示使用了索引合并最佳化方法 常見如 : idx1 = ? or idx2 = ?
key
MYSQL執行計畫使用的索引
ref
和前方表串連的欄位,const代表是常量值串連
rows
顯示MYSQL執行查詢的行數,簡單且重要,數值越大越不好
extra
Distinct : 一旦MYSQL找到了與行相聯合匹配的行,就不再搜尋了
Range checked for each: 沒有找到理想的索引,因此對於從前面表中來的每一個行組合,MYSQL檢查使用哪個索引,並用它來從表中返回行。這是使用索引的最慢的串連之一
Using filesort: 發生了硬碟或記憶體排序,一般是由order by 或 group by觸發的;典型的情況,排序的欄位不是驅動表的欄位,則會使用暫存資料表將資料都添加進去,最後進行排序,如果資料大則硬碟排序,如果小則記憶體排序.
Using index :列資料是從僅僅使用了索引中的資訊而沒有讀取實際的行動的表返回的,使用了覆蓋索引最佳化
Using temporary :使用了暫存資料表,通常和filesort一起發生. 典型情況:使用了派生表.
Using where: 資料庫服務層從儲存引擎提取了資料又進行了一次條件過濾
using index condition: ICP最佳化,從5.6之後提供.將過濾條件下推到儲存引擎層執行,能更好的利用複合索引來過濾資料,減少IO.
MySQL explain欄位解釋