mysql主表與從表通過主鍵內關聯或右關聯時,explain出來的索引型別是eq_ref。
但是在主表 left join 從表時索引不生效,因為左關聯要對主表全表掃瞄。
需要在where後面對從表加過濾條件,使索引生效(eq_ref類)。
對錶訪問方式,表示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 索引型別 ref MySQL索引型別
面試時曾經被問了mysql的索引型別,我這個寶批龍給達到資料儲存方式上了,聚集索引 二級索引 覆蓋索引,也慢慢對面試有了感覺,面試可能會給你乙個情景,然後深入問裡面的知識點 mysql有多種索引型別,索引是在儲存引擎中實現的,不同的儲存引擎對同乙個索引型別的實現方式不同,不同的儲存引擎支援不同的索引...
mysql索引型別和方式 mysql索引型別和方式
索引 資料庫的索引就像一本書的目錄,能夠加快資料庫的查詢速度。mysql索引有四種primary index unique fulltext,其中primary index unique是一類,fulltext是一類。這四種都是單列索引,也就是他們都是作用於單個一列,所以也稱單列索引 但是所以乙個索...
mysql預設索引 mysql的索引
什麼是索引 當你在字典中查詢你的名字的時候,你有兩種方式。第 一 一頁一頁的翻,第 二 通過拼音 筆畫,等查詢。那麼第二種方式就是通過索引的方式查詢。那麼在myslq中資料庫也是這麼幹的。索引可以增加查詢速度,但是同時mysql維護索引也需要耗費效能。索引的分類 主鍵索引 如果乙個字段為主鍵 pri...