mysql 在使用聯合索引時會有乙個最優左字首的乙個原則
其實就是 where條件後跟隨的多個條件字段使用復合索引的乙個規則(引用別人的一句話:帶頭大哥不能死,中間兄弟不能斷)
比如 user表 字段 id name age salary 建立復合索引 (name age salary )
當建立(a,b,c)復合索引時,相當於建立了(a)單列索引,(a,b)組合索引以及(a,b,c)組合索引
想要索引生效的話,只能使用 a和a,b和a,b,c三種組合
1.有帶頭大哥
select * from user where name='qiaofeng' and age= 28 and salary = 11000
此時是走索引的
2.有帶頭大哥,有中間兄弟
select * from user where name='qiaofeng' and age= 28
此時是走索引的
3.有帶頭大哥,沒有中間兄弟
select * from user where name='qiaofeng' and and salary = 11000
此時只有name欄位走索引的, 而salary不走索引
4.沒有帶頭大哥
select * from user where age= 28 and and salary = 11000
此時是沒有匹配索引的
另外,where後條件字段順序不按照索引順序 也是沒問題的,因為mysql 在查詢時會自動根據欄位的最大化的匹配索引
select * from user where age= 28 and name='qiaofeng' 也是走索引的
mysql索引 錢綴 mysql字串字首索引
比如,這兩個在 email 欄位上建立索引的語句 mysql alter table suser add index index1 email 或mysql alter table suser add index index2 email 6 第乙個語句建立的 index1 索引裡面,包含了每個記錄...
mysql 雜湊索引 MySQL索引之雜湊索引
雜湊索引 hash index 建立在雜湊表的基礎上,它只對使用了索引中的每一列的精確查詢有用。對於每一行,儲存引擎計算出了被索引的雜湊碼 hash code 它是乙個較小的值,並且有可能和其他行的雜湊碼不同。它把雜湊碼儲存在索引中,並且儲存了乙個指向雜湊表中的每一行的指標。在mysql中,只有me...
mysql主鍵索引 MySQL索引之主鍵索引
在mysql裡,主鍵索引和輔助索引分別是什麼意思,有什麼區別?上次的分享我們介紹了聚集索引和非聚集索引的區別,本次我們繼續介紹主鍵索引和輔助索引的區別。1 主鍵索引 主鍵索引,簡稱主鍵,原文是primary key,由乙個或多個列組成,用於唯一性標識資料表中的某一條記錄。乙個表可以沒有主鍵,但最多只...