EXPLAN 顯示的是 MySql 如何使用索引和對SQL進行分析的工具。用來檢視索引是否生效,關聯查詢具體情況等資訊。
調用 EXPLAN 隻需要在查詢語句 SELECT 前增加 EXPLAN 這個詞即可
EXPLAN 傳回資訊字段說明:
id:
這一列是編号,辨別select說屬的行,語句中沒有子查詢或者聯合查詢時隻會有一條結果,每次都顯示為1,反之則以順序編号,對應在原始語句中的位置。
select_type:
顯示查詢是簡單合适複雜的,SIMPLE是簡單的,如果存在複雜的查詢則外層部分會标記為PRIMARY。
其他标記:
SUBQUERY 不在from子句中,包含在select清單中的子查詢中的select語句。
DERIVED 表示包含在from子句的子查詢中的select
UNION 在UNION中的第二個和随後的select被标記為UNION
UNION RESULT 用來從UNION的匿名臨時表檢索結果的SELECT被标記為UNION RESULT
tabale:
顯示對應的行正在通路哪個表
partitions:
type:
通路類型,表述MySQL如何查找表中的行,有 ALL、index,range、ref、er_ref、const、system、NULL等值,ALL為全表掃描,NULL為無需通路表,性能上從最差到最好。
possible_keys:
顯示查詢可以使用哪些索引,這是基于查詢通路的列和使用的比較操作符來判斷的
key:
這一列顯示MySQL決定采用哪個索引來優化對該表的通路,如果該索引沒有出現在possible_keys列中,那麼MySQL選用他就是出于其他原因。
key_len:
顯示MySQL在索引裡使用的位元組數
ref:
這一列顯示之前的表在key列記錄的索引中查找值所用的列和常量
rows:
MySQL估計未來找到所需要的行而讀取的行數,既檢查行數
filtered:
顯示針對表裡某個符合條件的記錄數百分比進行悲觀估計
Extra:
額外資訊
本作品采用《CC 協定》,轉載必須注明作者和本文連結