1. 程式人生 > >MYSQL的explain工具簡介

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命令的結束符指定為$$