mysql explain查詢結果字段說明

2021-09-19 15:12:40 字數 933 閱讀 5352

1、id:這是select的查詢序列號

2、select_type:select_type就是select的型別,可以有以下幾種:

******:簡單select(不使用union或子查詢等)

primary:最外面的select

union:union中的第二個或後面的select語句

dependent union:union中的第二個或後面的select語句,取決於外面的查詢

union result:union的結果。

subquery:子查詢中的第乙個select

dependent subquery:子查詢中的第乙個select,取決於外面的查詢

derived:匯出表的select(from子句的子查詢)

3、table:顯示這一行的資料是關於哪張表的

4、type:這列最重要,顯示了連線使用了哪種類別,有無使用索引,是使用explain命令分析效能瓶頸的關鍵項之一。

結果值從好到壞依次是:

system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > all

一般來說,得保證查詢至少達到range級別,最好能達到ref,否則就可能會出現效能問題。

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

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

7、key_len:顯示mysql決定使用的鍵長度。如果鍵是null,則長度為null。使用的索引的長度。在不損失精確性的情況下,長度越短越好

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

9、rows:顯示mysql認為它執行查詢時必須檢查的行數。

MySQL explain索引查詢分析

最近學了mysql的索引原理,針對常見的幾個面試問題進行了實驗分析 新建乙個表 create table ifnot exists test www intunsigned auto increment intnot null yyy intnot null zzz intnot null prim...

MySQL explain 和 慢查詢日誌

explain sql語句 select from t force index a where a between 100 and 1000 在 my.cnf 中 log slow queries var lib mysql slowquery.log 指定日誌檔案存放位置,可以為空,系統會給乙個預...

python mysqldb 查詢返回字典結構

mysqldb預設查詢結果都是返回tuple,輸出時候不是很方便,必須按照0,1這樣讀取,無意中在網上找到簡單的修改方法,就是傳遞乙個cursors.dictcursor就行。預設程式 import mysqldb db mysqldb.connect host localhost user roo...