mysql 單列索引與聯合索引的使用

2021-09-29 06:43:41 字數 1362 閱讀 9907

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...