它是mysql自代的乙個工具,用它可以分析mysql是怎麼樣執行你的sql語句的,它是在不真正執行sql語句的時候,就知道執行的情況。這樣利於我們去分析sql語句。
呼叫方式為:explain+sql語句。
如在我的環境中執行:explain select * from `ykttb_users` where id=1\g;
(\g的意思為格式化輸出結果)會出現以下結果
*************************** 1. row***************************
id: 1
select_type: ******
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.
******
unionresult union 中合併結果。
table:查詢的表名
type:掃瞄的方式。
all為全表掃瞄,盡量避。
system:表僅有一行(=系統表),這個是const聯接型別的乙個特例,
const表最多有乙個匹配行。
possible_keys:可能用到有的索引有哪些
key:實際用到的索引有哪些
rows:可能得到多少記錄
extra:sql語句的額外資訊,比如排序方式等
另外還介紹乙個命令,delimiter +符號,它是將mysql指定mysql命令的結束符,在寫儲存過程時很有用。
如delimiter $$ ,將mysql命令的結束符指定為$$
mysql強有力的工具 Explain
select識別符。這是select的查詢序列號 primary 子查詢中最外層查詢 subquery 子查詢內層第乙個select,結果不依賴於外部查詢 dependent subquery 子查詢內層第乙個select,依賴於外部查詢 union union語句中第二個select開始後面所有s...
mysql索引結構 explain工具
排好序的資料結構 1 如果是二叉樹 如圖 當字段為有順序遞增時,二叉樹子節點大於父節點原則,二叉樹會無限單邊遞增。這樣高度不可控。查詢效率不高。2 紅黑樹 紅黑數高度 2的n次方等於資料量,如果資料量為500萬,那麼高度大,查詢次數多,效能不高,而且插入時,節點還自旋。1 節點資料索引從左到右依次增...
mysql執行計畫(explain工具分析)
explain是mysql自帶的乙個分析sql的小功能,只需要在任何一條sql語句之前,就能得到這條sql相應的執行資訊。將會也何種方式執行 大致會掃瞄多少資料等 查詢中的每個表都會輸出一行記錄,如果用了join連線查詢,幾個表就會生成幾行 id 列的編號相當於select 的序號,有幾個selec...