col1,col2,col3 分別加索引i1,i2,i3
select * from twhere col1 = 'v'用了索引 i1
select * from twhere col1 = 'v' and col2 = 'v'and col3 = 'v' 還是只用了索引 i1
select * from twhere col2 = 'v' and col1 = 'v'and col3 = 'v' 還是只用了索引 i1
select * from twhere col2= 'v' and col3 = 'v' 用了i2
用or的時候
select * from t where col1 = 'v' or col2 = 'v' 未用任何索引
其他特殊情況
select * from student where 1=1 and sname = '小明2' 會使用索引
select * from student where sname = ' ' 會使用索引
select * from student where sname = null 不會用索引 (所以避免給字段設定null)
col1,col2,col3 建立聯合索引 i123
與上述規則一致。
當兩個索引都可以用到時,資料庫引擎自動優化,自動選擇最快的那個索引。
mysq l單列索引 or 聯合索引
在使用資料庫的時候會經常使用到索引,單列索引是最常見 使用最多的,但是我們也經常遇到需要使用聯合索引的場景,下邊簡單說明如何抉擇使用何種索引。1,首先要確定優化的目標,在什麼樣的業務場景下,表的大小等等。如果表比較小的話,可能都不需要加索引 2,哪些字段需要建索引,一般都where order by...
mysql單列索引與聯合索引介紹
mysql單列索引與聯合索引介紹 1.or兩邊乙個單列索引,乙個沒索引,索引不生效 explain select from me sku where sku name code jcxcmft or product id 7016497 2.or兩邊都是單列索引,兩個索引生效 多個or,多個單列索引...
MySQL單列索引和聯合索引
所有的mysql列型別能被索引。在相關的列上的使用索引是改進select操作效能的最好方法。乙個表最多可有16個索引。最大索引長度是256個位元組,儘管這可以在編譯mysql時被改變。對於char和varchar列,你可以索引列的字首。這更快並且比索引整個列需要較少的磁碟空間。在create tab...