MYSQL——explain關鍵字
阿新 • • 發佈:2018-11-23
explain 關鍵字可以檢視SQL語句執行的情況
使用
explain + SQL 語句
引數值 | 含義 |
---|---|
id | 表示SELECT語句的編號 |
select_type | 表示SELECT語句的型別該引數有幾個常用的取值 |
SIMPLE | 表示簡單查詢,其中不包括連線查詢和子查詢 |
PRIMARY | 表示主查詢,或者是最外層的查詢語句 |
UNION | 表示連線查詢的第二個或後面的查詢語句 |
table | 表示查詢的表 |
type | 表示表的連線型別。該引數有幾個常用的取值 |
const | 表示表中有多條記錄,但只從表中查詢一條記錄 |
eq_ref | 表示多表連線時,後面的表使用了UNIQUE或者PRIMARY KEY |
ref | 表示多表查詢時,後面的表使用了普通索引 |
unique_ subquery | 表示子查詢中使用了UNIQUE或者PRIMARY KEY |
index_ subquery | 表示子查詢中使用了普通索引 |
range | 表示查詢語句中給出了查詢範圍 |
index | 表示對錶中的索引進行了完整的掃描 |
all | 表示此次查詢進行了全表掃描,該條SQL需要優化; |
possible_keys | 表示查詢中可能使用的索引。如果備選的數量大於3那說明已經太多了,因為太多會導致選擇索引而損耗效能, 所以建表時欄位最好精簡,同時也要建立聯合索引,避免無效的單列索引; |
key | 表示查詢使用到的索引 |
key_len | 表示索引欄位的一長度; |
ref | 表示使用哪個列或常數與索引一起來查詢記錄; |
rows | 表示查詢的行數。試圖分析所有存在於累計結果集中的行數,雖然只是一個估值,卻也足以反映 出SQL執行所需要掃描的行數,因此這個值越小越好; |
Extra | 表示查詢過程的附件資訊。 |