总结 sql语句中索引失效的情况

时隔许久又来更新博客了!

总结一下sql优化中sql语句里会导致索引失效的语句(索引失效,导致全表扫描)

1、like的前置%

eg. select * from user where name like '%张三%';

 

2、where条件中的 or 语句

eg. select * from user where account= 20 or account = 30;

解决办法:使用 union、union all 语句。

select * from user where account = 20

union all

select * from user where account = 30

 

3、where条件中的 in 和not in

eg. select  * from user where account in (1,2,3);

解决办法:若是连续值采用 between语句

select * from user where account between 1 and 3;

 

4、 is null 和 is not null 

eg.select * from user where account is null;

 

5、!=  和<> 

eg.select * from user where account != 1;

select * from user where account > 1;

 

6、判断一个值是否存在,用exists 替代in

 

7、where条件中使用函数对索引列进行操作

 

暂时只想起来这么多,欢迎留言补充。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值