MYSQL的explain工具簡介
MYSQL的explain工具
它是mysql自代的一個工具,用它可以分析MYSQL是怎麼樣執行你的SQL語句的,它是在不真正執行SQL語句的時候,就知道執行的情況。這樣利於我們去分析SQL語句。
呼叫方式為:explain+SQL語句。
如在我的環境中執行:explain select * from `ykttb_users` where id=1\G;
(\G的意思為格式化輸出結果)會出現以下結果
*************************** 1. row***************************
id: 1
select_type: SIMPLE
table: ykttb_users
type: const
possible_keys: PRIMARY
key: PRIMARY
key_len: 4
ref: const
rows: 1
Extra: NULL
1 row in set (0.00 sec)
解釋上面的結果:
id:查詢的序列號
select_type:查詢的型別;它有以幾種方式
PRIMARY子查詢中最外層查詢
SUBQUERY:子查詢內層第一個SELECT,結果不依賴於外部查詢
DEPENDENTSUBQUERY:子查詢內層第一個SELECT,依賴於外部查詢
UNION:UNION語句中第二個SELECT開始後面所有SELECT.
SIMPLE
UNIONRESULT UNION 中合併結果。
table:查詢的表名
type:掃描的方式。
ALL為全表掃描,儘量避。
system:表僅有一行(=系統表),這個是const聯接型別的一個特例,
const表最多有一個匹配行。
possible_keys:可能用到有的索引有哪些
key:實際用到的索引有哪些
rows:可能得到多少記錄
Extra:SQL語句的額外資訊,比如排序方式等
另外還介紹一個命令,delimiter +符號,它是將MYSQL指定MYSQL命令的結束符,在寫儲存過程時很有用。
如delimiter $$ ,將MYSQL命令的結束符指定為$$