MYSQL的explain工具簡介

2021-06-26 08:19:49 字數 1129 閱讀 7555

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