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...