標籤:查詢 對象 欄位 順序 主鍵 基於 代碼 merge 條件
MySQL的EXPLAIN的type
1 串連操作的類型 2 (1)SYSTEM 3 CONST的特例,當表上只有一條元組匹配 4 (2)CONST 5 WHERE條件式篩選後表上至多有一條元組匹配時,比如WHERE ID = 2 (ID是主鍵,值為2的要麼有一條要麼沒有) 6 (3)EQ_REF 7 參與串連運算的表是內表(在代碼實現的演算法中,兩表串連時作為迴圈中的內迴圈遍曆的對象,這樣的表稱為內表)。 8 基於索引(串連欄位上存在唯一索引或者主鍵索引,且操作符必須是“=”謂詞,索引值不能為NULL)做掃描,使得對外表的一條元組,內表只有唯一一條元組與之對應。 9 (4)REF10 可以用於單表掃描或者串連。參與串連運算的表,是內表。11 基於索引(串連欄位上的索引是非唯一索引,操作符必須是“=”謂詞,串連欄位值不可為NULL)做掃描,使得對外表的一條元組,內表可有若干條元組與之對應。12 (5)REF_OR_NULL13 類似REF,只是搜尋條件包括:串連欄位的值可以為NULL的情況,比如 where col = 2 or col is null14 (6)RANGE15 範圍掃描,基於索引做範圍掃描,為諸如BETWEEN,IN,>=,LIKE類操作提供支援16 (7)INDEX_SCAN17 索引做掃描,是基於索引在索引的葉子節點上找滿足條件的資料(不需要訪問資料檔案)18 (8)ALL19 全表掃描或者範圍掃描:不使用索引,順序掃描,直接讀取表上的資料(訪問資料檔案)20 (9)UNIQUE_SUBQUERY21 在子查詢中,基於唯一索引進行掃描,類似於EQ_REF22 (10)INDEX_SUBQUERY23 在子查詢中,基於除唯一索引之外的索引進行掃描24 (11)INDEX_MERGE25 多重範圍掃描。兩表串連的每個表的串連欄位上均有索引存在且索引有序,結果合并在一起。適用於作集合的並、交操作。26 (12)FT27 FULL TEXT,全文檢索索引
mysql 懵逼的狀態