mysql 索引失效場景 Mysql 索引失效場景

2021-10-17 16:28:03 字數 807 閱讀 8493

例如:一張user表   有欄位屬性 name,age   其中name為索引

下面列舉幾個索引失效的情況

1. select * from user where name=『xzz』 or age=16;

例如這種情況:當語句中帶有or的時候 即使有索引也會失效。

2.select *  from  user where name like『%xzz』 ;

例如這種情況:當語句索引 like 帶%的時候索引失效(注意:如果上句為 like『xzz』此時索引是生效的)

3.select * from user where name=123;(此處只是簡單做個例子,實際場景中一般name不會為數字的)

例如這種情況:如果列型別是字串,那一定要在條件中將資料使用引號引用起來,否則不使用索引

4.如果mysql估計使用全表掃瞄要比使用索引快,則不使用索引(這個不知道咋舉例子了 )

5.假如上述將name和age設定為聯合索引,一定要注意順序,mysql聯合所以有最左原則,下面以name,age的順序講下

(1)select * from user where name=『xzz』 and age =11;

(2)select * from user where age=11 and name=『xzz』;

例如上訴兩種情況:以name,age順序為聯合索引,(1)索引是生效的,(2)索引是失效的

6.比如age為索引:select * from user where age-1>11;

例如這種情況:索引失效,不要在索引上進行操作,否則索引會失效(是有類似時間轉換的問題和上訴問題一樣)

Mysql 索引失效場景

例如 一張user表 有欄位屬性 name,age 其中name為索引 下面列舉幾個索引失效的情況 1.select from user where name xzz or age 16 例如這種情況 當語句中帶有or的時候 即使有索引也會失效。2.select from user where na...

Mysql 索引失效場景

例如 一張user表 有欄位屬性 name,age 其中name為索引 下面列舉幾個索引失效的情況 1.select from user where name xzz or age 16 例如這種情況 當語句中帶有or的時候 即使有索引也會失效。2.select from user where na...

MySQL 索引可能失效場景

mysql 索引可能失效場景 2017 07 12 11 29 43 0 u013595570的部落格 收藏我要投稿 1 where子句的查詢條件裡有where column!mysql將無法使用索引 2 where子句的查詢條件中使用了函式,mysql將無法使用索引 3 如果條件有or,即使其中有...