索引失效情况

索引失效

注:索引列无法存储null值,与null值有关的操作都不会使用索引

  1. 语句中有or,且or的条件中有非索引字段,索引失效
    例如:
    id为索引列,name字段未建索引,以下语句不使用索引
selsect * from A where id=1 or name="test"
  1. 符合索引中未用最左列主索引字段
    例如,建索引时(id,name,number)
    使用时,不使用id,则不会使用索引
select * from A where name=“test” and number=123
  1. like前缀匹配,索引失效
    例如:
select * from A where name like “%test”
  1. 条件查询中做了隐式数据转换,索引失效
    例如:
    id本是integer型字段,条件中做varcgar类型条件查询,sql引擎会转换类型,但是索引失效。注:sql引擎做类型转换速度很慢
select * from A where id=123
  1. where子句中对索引列有数学运算,如abs等,索引失效
select * from A where id=id+1 
  1. where子句中有对索引列使用函数,索引失效
select * from A where ABS(id)=1
  1. sql引擎人为使用全表扫描比使用索引查询快,则会放弃扫描
    例如:数据量极小的表
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值