MySql Explain執行計畫

2021-09-24 17:42:16 字數 1707 閱讀 9404

explain執行計畫

例:explain select * from user;

idselect_type

table

partitions

type

possible_keys

keykey_len

refrows

filtered

extra

id:查詢序列號,表示查詢中執行select子句或操作表的順序

1),id相同,執行順序由上至下

2),id不同,如果是子查詢,id的序號會遞增,id值越大,優先順序越高,越早被執行

3),id同時存在相同和不同,可以認為相同的為一組,在組內執行順序由上至下,在所有組中,按id的大小執行,id越大越快被執行

select_type:查詢型別

1),******:簡單的select查詢,查詢中不包括子查詢或union。

2),primary:子查詢中的最外層查詢,查詢中若包含任何複雜的子部分,最外層的select被標記為primary。

3),union:若第二個select出現在union之後,則被標記為union;

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

5),union result:從union表獲取結果的select

6),subquery:在select 或 where列表中包含了子查詢 

7),dependent subquery:子查詢中的第乙個select,依賴於外部查詢

8),derived:若union包含在from子句的子查詢中,外層select將被標記為derived

type:當前被執行的表或者結果集

1),all:掃瞄遍歷全資料表

2),index:全索引表掃瞄

3),range:對索引列進行範圍查詢

4),index_merge:合併索引,使用多個單列索引搜尋

5),ref:根據索引查詢乙個或多個值

6),eq_ref:搜尋時使用primary key 或 unique型別

7),const:常量,表最多有乙個匹配行,因為僅有一行,在這行的列值可被優化器剩餘部分認為是常數,const表很快,因為它們只讀取一次。

8),system:系統,表僅有一行(=系統表)。這是const聯接型別的乙個特例。

9),null

效能:all效能在range之下基本都可以進行調優

partitions:可能使用的索引

table:真實使用的

possible_keys:指出mysql能使用哪個索引在表中找到行,查詢涉及到的字段上若存在索引,則該索引將被列出,但不一定被查詢使用。

key:mysql中實際使用的索引

key_len:mysql中實際使用的索引位元組長度

ref:顯示索引的那一列被使用了

rows:mysql 預估為了找到所需的行而要讀取的行數

filtered

extra:包含不適合在其他列中顯示但十分重要的額外資訊

Mysql explain 執行計畫

使用方法,在select語句前加上explain就可以了 如 explain select from test1 explain列的解釋 table 顯示這一行的資料是關於哪張表的 type 這是重要的列,顯示連線使用了何種型別。從最好到最差的連線型別為const eq reg ref range ...

MySQL Explain 執行計畫

執行計畫就是sql的執行查詢的順序,以及如何使用索引查詢,返回的結果集行數,可以根據執行計畫結果結合業務對現有sql進行優化 explain 查詢結果有10列,分別表示的含義是 是乙個有序的編號,是查詢的順序號,有幾個select就顯示幾行,id的順序是按照select出現的順序增長的,id列的值越...

MYSQL explain 執行計畫

使用方法,在select語句前加上explain就可以了 如 explain sepmatyfayznlect from test1 explain列的解釋 table 顯示這一行的資料是關於哪張表的 type 這是重要的列,顯示連線使用程式設計客棧了何種型別。從最好到最差的連線型別為const e...