explain效能測試

2021-10-04 18:58:53 字數 2148 閱讀 1536

(1) ******(簡單select,不使用union或子查詢等)

//union 操作符用於合併兩個或多個 select 語句的結果集

(2) primary(子查詢中最外層查詢,查詢中若包含任何複雜的子部分,最外層的select被標記為primary)

(3) union(union中的第二個或後面的select語句)

(4) dependent union(union中的第二個或後面的select語句,取決於外面的查詢)

(5) union result(union的結果,union語句中第二個select開始後面所有select)

(6) subquery(子查詢中的第乙個select,結果不依賴於外部查詢)

(7) dependent subquery(子查詢中的第乙個select,依賴於外部查詢)

(8) derived(派生表的select, from子句的子查詢)

(9) uncacheable subquery(乙個子查詢的結果不能被快取,必須重新評估外鏈結的第一行)

顯示該語句涉及的表

匹配的分割槽

表示mysql在表中找到所需行的方式,又稱「訪問型別」。

常用的型別有: all、index、range、 ref、eq_ref、const、system、null(從左到右,效能從差到好)

all:full table scan, mysql將遍歷全表以找到匹配的行

index: full index scan,index與all區別為index型別只遍歷索引樹

range:只檢索給定範圍的行,使用乙個索引來選擇行

ref: 表示上述表的連線匹配條件,即哪些列或常量被用於查詢索引列上的值

eq_ref: 類似ref,區別就在使用的索引是唯一索引,對於每個索引鍵值,表中只有一條記錄匹配,簡單來說,就是多表連線中使用primary key或者 unique key作為關聯條件

const、system: 當mysql對查詢某部分進行優化,並轉換為乙個常量時,使用這些型別訪問。如將主鍵置於where列表中,mysql就能將該查詢轉換為乙個常量,system是const型別的特例,當查詢的表只有一行的情況下,使用system

null: mysql在優化過程中分解語句,執行時甚至不用訪問表或索引,例如從乙個索引列裡選取最小值可以通過單獨索引查詢完成。

指出mysql能使用哪個索引在表中找到記錄,查詢涉及到的字段上若存在索引,則該索引將被列出,但不一定被查詢使用(該查詢可以利用的索引,如果沒有任何索引顯示

null)

如果該列是null,則沒有相關的索引。在這種情況下,可以通過檢查where子句看是否它引用某些列或適合索引的列來提高你的查詢效能。如果是這樣,創造乙個適當的索引並且再次用explain檢查查詢

key列顯示mysql實際決定使用的鍵(索引),必然包含在possible_keys中

如果沒有選擇索引,鍵是null。

表示索引中使用的位元組數,可通過該列計算查詢中使用的索引的長度(key_len顯示的值為索引欄位的最大可能長度,並非實際使用長度,即key_len是根據表定義計算而得,不是通過表內檢索出的)

不損失精確性的情況下,長度越短越好

哪些庫表裡的字段或常量被用於查詢索引列上的值

估算出結果集行數,表示mysql根據表統計資訊及索引選用情況,估算的找到所需的記錄所需要讀取的行數

• explain不考慮各種cache

• explain不能顯示mysql在執行查詢時所作的優化工作

• 部分統計資訊是估算的,並非精確值

• expalin只能解釋select操作,其他操作要重寫為select後檢視執行計畫

效能分析 explain

1.id 查詢中select子句或操作表的順序 id相同,執行順序由上到下 id不同,越大優先順序越高 2.select type 查詢型別,主要區別於普通查詢 聯合查詢 子查詢 複雜查詢 簡單的查詢 pimary 查詢中包含任何複雜的子部分,最外層標記為primary derived 在from中...

Mysql效能分析 Explain

一.explain是什麼 使用explain關鍵字可以模擬優化器執行sql查詢語句,從而知道mysql是 如何處理你的sql語句的。分析你的查詢語句或是表結構的效能瓶頸 二.explain作用 1 表的讀取順序 2 哪些索引可以使用 3 資料讀取操作的操作型別 4 哪些索引被實際使用 5 表之間的引...

MySQL效能分析及explain

mysql效能分析及explain用法的知識 1.使用explain語句去檢視分析結果 如explain select from test1 where id 1 會出現 id selecttype table type possible keys key key len ref rows extr...