數據庫索引失效的場景
1. 建表
create table t1 ( a int PRIMARY key, b int, c int, d int, e varchar(20) )ENGINE=INNODB insert into t1 value(4,3,1,1,'d'); insert into t1 value(1,1,1,1,'a'); insert into t1 value(8,8,8,8,'h'); insert into t1 value(2,2,2,2,'b'); insert into t1 value(5,2,3,5,'e'); insert into t1 value(3,3,3,3,'c'); insert into t1 value(7,4,5,5,'g'); insert into t1 value(6,6,4,4,'f');
建立索引并查看
-- 建立索引 create index idx_t1_bcd on t1(b,c,d); # 組合索引 create index idx_t1_e on t1(e); # 普通索引 -- 查看索引結構 show index from t1;
索引結構

2. 索引失效的情況
1. 違反最左匹配原則:指的第一個索引key必須出現,可以在不同位置

2. 使用模糊查詢like時,后置通配符 a% 有效,前置通配符 %a 失效

3. 在索引上使用函數或者進行計算時,索引失效

4. 索引進行了類型轉換,索引失效

5. 當出現<>,in或者not in 時,索引失效

6. 使用order by排序時索引失效

7. 使用or語句時,索引失效

8. select * 沒有條件時,索引失效

浙公網安備 33010602011771號