Mysql的IN和OR会让索引失效吗

刚刚看了一篇Mysql的文章上面说查询的时候使用in和or会让索引失效,所以我就去试了一下,结果就是不会失效

首先我的版本是5.7.25

select version() from dual;
在这里插入图片描述

这是t_zw_users这个表的索引

show index from t_zw_users;
在这里插入图片描述

测试

通过主键字段走的主键索引发现是不受INOR的影响的

EXPLAIN SELECT id,unique_id,phone_num FROM t_zw_users WHERE id IN(473377,473378,473379,473380,473386,473390,473418,473419,473437,473442) OR id=473443 OR id=473444
在这里插入图片描述

通过unique_id走的unique_index索引也是不受影响的

EXPLAIN SELECT * FROM t_zw_users WHERE unique_id IN(“1ad9sce5”,“1fas7ba7”,“22ds5376”,“309c17s8”,“3es26d2f”,“4842se2c”,“4c4bcs0a”,“6sb1d3ad”,“67bbc39d”,“76412999”,“7b64f5e1”) OR unique_id=“7b34f5e1” OR unique_id=“6b3425e1”
在这里插入图片描述

猜想

我想会不会是因为这两个字段的内容都是唯一的所以没有影响到正常的走索引
所以我重新新建了个索引

CREATE INDEX company_index ON company_audit_record (apply_company_id)
在这里插入图片描述
在这里插入图片描述

还有一种可能就是版本的问题
在这里插入图片描述

结果就是还是正常的走索引,没有任何影响

EXPLAIN SELECT id,apply_company_id FROM company_audit_record WHERE apply_company_id IN(40085327,40085279,40085331,40085278,40085277,40085265,40085279)OR apply_company_id=40085419 OR apply_company_id=40085413
在这里插入图片描述

结论

目前通过这些测试来看,结论就是5.7.25这个版本是没有问题不受影响的

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值