Mysql執行計划 Type值的關系


type 說明
ALL 全數據表掃描
index 全索引表掃描
RANGE 對索引列進行范圍查找
INDEX_MERGE 合並索引,使用多個單列索引搜索
REF 根據索引查找一個或多個值
EQ_REF 搜索時使用primary key 或 unique類型
CONST 常量,表最多有一個匹配行,因為僅有一行,在這行的列值可被優化器剩余部分認為是常數,const表很快,因為它們只讀取一次。
SYSTEM 系統,表僅有一行(=系統表)。這是const聯接類型的一個特例。

 

 

 

 

 

 

性能:all < index < range < index_merge < ref_or_null < ref < eq_ref < system/const
性能在 range 之下基本都可以進行調優

補充說明:

system:表只有一行記錄,相當於系統表(通常此類表單用來作為系統參數等常用且不經常修改的)

const:通過索引一次就找到,只匹配一行數據

eq_ref: 唯一性索引掃描,對於每個索引鍵,表中只有一條記錄與之匹配

ref:非唯一性索引掃描,返回匹配某個單獨值的所有行(用於=、<、> 操作符帶索引的列)

index_merge: 很多人不太深入理解index_merge,並且只會在mysql5.7及以上版本會出現,這里引用CSDN文章給大家一個詳細的說明:https://www.cnblogs.com/digdeep/p/4975977.html

index: 這種連接類型只是另外一種形式的全表掃描,只不過它的掃描順序是按照索引的順序

all:全表掃描,性能最差 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM