索引失效

  1. 以%开头的LIKE查询

优化方案:首先扫描二级索引获取满足条件的PRIMARY KEY,在根据主键回表查询。

SELECT * FROM
(SELECT actor_id FROM actor WHERE last_name LIKE ‘%NI%’) tmp
INNER JOIN actor a ON a.actor_id=tmp.actor_id

  1. 类型的隐式转换(字符转数字会失效,数字转字符不会失效)

例如:SELECT * FROM actor WHERE last_name=1; – 会失效

SELECT * FROM actor WHERE actor_id=‘1’; – 不会失效

  1. 联合索引不满足最左原则

  2. MYSQL优化器估计使用索引比全部扫描要慢

  3. 使用or时,必须保证其前后都能有索引,如果其中任一不包含索引都会导致索引失效
    6.对索引列运算,运算包括(+、-、*、/、!、<>、%、like’%_’(%放在前面)、or、in、exist等),导致索引失效。

  4. sql中使用函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值