mysql 執行計劃索引分析筆記

nanlulululu發表於2019-05-06

首先執行計劃包含的資訊:


id, select_type, table, partitions, type, possible_keys, key, key_len, ref, rows, filtered, Extra


id

select 查詢的序列號,包含一組數字,表示查詢中執行select子句或操作表的順序 

存在三種情況:

a)  id相同,表示表(table欄位)執行順序從上到上

b)  id不同,如果是子查詢,id越大表執行的優先順序越高

c)  id有相同也有不同,id相同,可認為是同一組,從上至下順序執行,所有組中id越大執行優先順序越高


select_type

主要有六種

SIMPLE              簡單查詢,不包括自查詢及union

PRIMAY              查詢中包含任何複雜的子部分的最外層查詢的標記

SUBQUERY       在select或where子句列表中包含自查詢

DERIVED           在from列表中包括的子查詢標記為derived(衍生)mysql遞迴查詢這些子查詢並放在臨時表裡

UNION               如果第二個select出現在union之後則標記為union,

                            如果union包含在from子句的子查詢中,外層的select標記為derived

UNION RESULT union結果的合併


table

對應的表


type

訪問型別 

效率 system>const>eq_ref>ref>fulltext>ref_or_null>index_merge>unique_subquery>index_subquery>range>index>ALL

主要使用到的:system>const>eq_ref>ref>range>index>ALL


system  表只有一行記錄(系統表)

const    索引常量

eq_ref  唯一性索引掃描

ref        非唯一性索引掃描

range  範圍索引掃描 (索引列使用 between in等範圍限定)

index  全索引掃描

ALL    全表掃描


possible_keys

查詢涉及到的欄位上存在的索引一個或多個(可能用到的,但不一定會使用)

keys

實際使用的索引


key_len

索引使用的位元組數,可通過該列計算查詢中使用索引的長度,同樣查詢結果條件下(不損失精度的條件下),長度越小越好

顯示的值為索引的最大可能長度,非實際長度,即key_len通過表定義計算所得非表內檢索值


ref

顯示索引用到的列(或用到的是常量) 例 db.table.col ,const


rows

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


Extra

其他資訊


1、Using filesort  

使用外部的索引排序(檔案排序),而不是按照索引的排序進行讀取

例如使用複合索引的表,查詢排序時只使用了複合索引的其中一列,可能會造成檔案排序。需儘量避免的情況


2、Using temporary  

使用了臨時表儲存中間結果,常見於order by 及group by 

消耗資源,需避免的情況

order by 及group by 語句中使用覆蓋索引


3、Using index

使用的覆蓋索引,避免訪問表的資料行

同時出現using where,表示索引用來查詢索引鍵值的查詢(如查詢結果中的列被索引列覆蓋)

如果沒有出現using where,表示索引直接用來讀取資料,不執行查詢動作


*覆蓋索引(Covering index)

select 的資料列只從索引中獲得,不必查詢資料行


4、Using where


5、Using join buffer

使用了連線快取


6、Impossible where 

where 子句結果false


7、select table optimized away

在沒有group by子句的情況下,基於索引優化MIN/MAX操作或者對於MyISAM 儲存引擎優化COUNT(*) 操作,不必等到執行階段再進行計算,查詢執行接話生成階段即可完成優化


8、distinct

優化distinct操作,在找到第一匹配的元組後即停止找同樣值的動作







來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69908925/viewspace-2643354/,如需轉載,請註明出處,否則將追究法律責任。

相關文章