mysql 中 sql語句 explain(一),mysqlexplain

來源:互聯網
上載者:User

mysql 中 sql語句 explain(一),mysqlexplain

參考:http://www.2cto.com/database/201307/230048.html

http://blog.csdn.net/zhuxineli/article/details/14455029

explain是用來分析mysql如何使用索引來處理select語句以及串連表。可以協助選擇更好的索引和寫出更最佳化的查詢語句。

1. id 

語句的執行順序標識。是指select語句執行的順序

2、select_type:  2.1、simple 

    簡單類型,只要 語句中沒有子查詢或union。

EXPLAIN SELECT * FROM `fm_company`

   2.2 primary 

最外面的select,在有子查詢的語句中,最外面的select查詢就是primary。查詢關鍵字和主鍵無關

EXPLAIN SELECT * FROM `fm_company` AS t1 WHERE orgId IN(SELECT orgId FROM fm_company AS t2 WHERE t2.`id` = 1)


2.3  union

 union語句的後面那個 select 執行執行語句。

EXPLAIN SELECT * FROM `fm_company` AS t1 UNIONSELECT * FROM `fm_company` AS t2
 2.4 dependent subquery 

  子查詢中內層中第一個select語句。

EXPLAIN SELECT * FROM `fm_company` AS t1 WHERE orgId IN(SELECT orgId FROM fm_company AS sub_t1 WHERE sub_t1.`id` = 148)
   2.5、devived 

   派生表(中間表)的查詢語句

EXPLAIN  SELECT  * FROM (SELECT * FROM `fm_company` AS t1 UNIONSELECT * FROM `fm_company` AS t2)  subQuery
2.6、dependent  union 

  子查詢中union且為union中第二個select開始的後面所有select,依賴於外部的結果集。

EXPLAIN SELECT * FROM `fm_company` as t1 WHERE orgId IN(SELECT orgId FROM fm_company as sub_t1 WHERE sub_t1.`id` = 148 union SELECT orgId FROM fm_company AS sub_t2 WHERE sub_t2.`id` = 149)
2.7 union result  

顧名思義就是 union中合并的結果


3. table 
顯示這一步所訪問的資料庫中表的名稱 4. type 這列很重要,顯示了串連使用了哪種類別,有無使用索引。type代表查詢執行計畫(QEP)中指定的表使用的串連方式。從最好到最差的連線類型為 
4.1.systemsystem為const一個特例,即表中只有一條記錄。這個是及特殊的情況
4.2.const

const是在where條件以常量作為查詢條件,表中最多有一條記錄匹配。由於是常量,所以實際上只需要讀一次。

const用於比較primary key 或者unique索引。因為只匹配一行資料,所以很快

記住一定是用到primary key 或者unique,並且只檢索出兩條資料的 情況下才會是const。如下面這個sql。直接用主鍵id 尋找

 EXPLAIN SELECT * FROM fm_company WHERE id=148

4.3. eq_reg 最多隻會有一條匹配結果,一般是通過主鍵或是唯一索引來訪問。一般會出現在串連查詢的語句中。
mysql手冊是這樣說的:"對於每個來自於前面的表的行組合,從該表中讀取一行。這可能是最好的聯結類型,除了const類型。它用在一個索引的所有部分被聯結使用並且索引是UNIQUE或PRIMARY KEY"。eq_ref可以用於使用=比較帶索引的列
 EXPLAIN SELECT * FROM fm_company t1  ,fm_company t2  WHERE t1.id=t2.id

後面有時間再研究吧。
4. ref、5. range、6.index、7. all

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.