mysql索引失效

2021-10-01 08:40:59 字數 1479 閱讀 9788

索引失效常見原因:

1、全值匹配我最愛

2、最佳左字首法則

3、不在索引列上作任何操作(計算、函式、(自動or手動)型別轉換),會導致索引失效而轉向全表掃瞄

4、儲存引擎不能使用索引中範圍條件右邊的列

5、盡量使用覆蓋索引(只訪問索引的查詢(索引列和查詢列一致)),減少select *

6、mysql在使用不等於(!=或者<>)的時候無法使用索引會導致全表掃瞄

7、is null,is not null也無法使用索引

8、like以萬用字元開頭(『%abc…』)mysql索引失效會變成全表掃瞄的操作

9、字串不加單引號索引失效

10、少用or,用它來連線時會索引失效

create

table staffs(

id int

primary

keyauto_increment

, name varchar(24

)not

null

default

''comment

'姓名'

, age int

notnull

default

0comment

'年齡'

, pos varchar(20

)not

null

default

''comment

'職位'

, add_time timestamp

notnull

default

current_timestamp

comment

'入職時間'

)charset utf8 comment

'員工記錄表'

;#插入資料

insert

into staffs (name,age,pos,add_time)

values

('z3'

,'22'

,'manager'

,now()

);insert

into staffs (name,age,pos,add_time)

values

('july'

,'23'

,'dev'

,now()

);insert

into staffs (name,age,pos,add_time)

values

('2000'

,'23'

,'dev'

,now()

);#建立索引

mysql索引失效 常見mysql索引失效條件

使用索引的一般語句 1 where條件中有or,除非or的所有欄位都有索引,只要有乙個沒有索引,就不走索引 explain select from jf user ju where ju.user id or ju.superior1 yyy user id是主鍵,superior1是普通索引,結果...

mysql 主鍵失效 MySQL索引(索引失效)

索引 索引也是一張表,該錶儲存了主鍵與索引字段,並指向實體表的記錄。myisam儲存引擎,資料檔案 索引檔案 表結構檔案分開儲存 innodb儲存引擎,資料和索引儲存在乙個檔案中 b tree索引 hash索引 hash索引 只有memory儲存引擎支援 查詢一條記錄的速度非常快 b tree索引 ...

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

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