explain用法和結果的含義

2021-08-21 19:20:08 字數 1644 閱讀 7870

idselect識別符。這是select的查詢序列號

select_typeselect型別,可以為以下任何一種:

table輸出的行所引用的表

type聯接型別。下面給出各種聯接型別,按照從最佳型別到最壞型別進行排序:

possible_keys指出mysql能使用哪個索引在該表中找到行

key顯示mysql實際決定使用的鍵(索引)。如果沒有選擇索引,鍵是null。

key_len顯示mysql決定使用的鍵長度。如果鍵是null,則長度為null。

ref顯示使用哪個列或常數與key一起從表中選擇行。

rows顯示mysql認為它執行查詢時必須檢查的行數。多行之間的資料相乘可以估算要處理的行數。

filtered顯示了通過條件過濾出的行數的百分比估計值。

extra該列包含mysql解決查詢的詳細資訊

not exists:mysql能夠對查詢進行left join優化,發現1個匹配left join標準的行後,不再為前面的的行組合在該錶內檢查更多的行。

range checked for each record (index map: #):mysql沒有發現好的可以使用的索引,但發現如果來自前面的表的列值已知,可能部分索引可以使用。

using filesort:mysql需要額外的一次傳遞,以找出如何按排序順序檢索行。

using index:從只使用索引樹中的資訊而不需要進一步搜尋讀取實際的行來檢索表中的列資訊。

using temporary:為了解決查詢,mysql需要建立乙個臨時表來容納結果。

using where:where 子句用於限制哪乙個行匹配下乙個表或傳送到客戶。

using sort_union(...), using union(...), using intersect(...):這些函式說明如何為index_merge聯接型別合併索引掃瞄。

using index for group-by:類似於訪問表的using index方式,using index for group-by表示mysql發現了乙個索引,可以用來查 詢group by或distinct查詢的所有列,而不要額外搜尋硬碟訪問實際的表。

EXPLAIN用法和結果分析

使用explain關鍵字可以模擬優化器執行sql查詢語句,從而知道mysql是如何處理你的sql語句的。分析你的查詢語句或是表結構的效能瓶頸。通過explain,我們可以分析出以下結果 使用方式如下 explain sql語句 explain select from t1 執行計畫包含的資訊 sel...

EXPLAIN用法和結果分析

使用explain關鍵字可以模擬優化器執行sql查詢語句,從而知道mysql是如何處理你的sql語句的。分析你的查詢語句或是表結構的效能瓶頸。通過explain,我們可以分析出以下結果 使用方式如下 explain sql語句 explain select from t1 執行計畫包含的資訊 sel...

explain用法和結果分析

使用explain關鍵字可以模擬優化器執行sql查詢語句,從而知道mysql是如何處理你的sql語句的。分析你的查詢語句或是表結構的效能瓶頸。通過explain我們可以獲得以下資訊 使用方法 explain sql語句。包含的字段如下 type所顯示的是查詢使用了哪種型別,type包含的型別包括如下...