程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql中sql語句explain(一)

mysql中sql語句explain(一)

編輯:MySQL綜合教程

mysql中sql語句explain(一)


 

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 
UNION
SELECT * 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 
UNION
SELECT * 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.system

system為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

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved