mysql 查询使用 in()条件时调用索引的争论

本文通过实际测试发现,在SQL查询中使用IN操作符时,当条件数量不超过16个时可以有效利用索引,超过则可能转为全表扫描,影响查询效率。
在查询中有多个条件时,一大堆的or连接写得想shi,然后改成in连接,同事在review代码时,指出用in“不能使用索引,会扫描全表,效率极差无比"(原话),故特意找了一些资料,各种说法都有,只好自己实践一下:
 
一个条件,使用了索引:
201211220921316434.png
加多个条件,发现使用索引了:
201211220921315911.png
采用二分法,看到底支持多少个条件,找出下面结果,in( )用法只支持16个条件以内会使用索引。这16个应该是由某项配置决定的,还没有找到这个配置项
201211220921327024.png




转载于:https://www.cnblogs.com/firmy/archive/2012/11/22/2781970.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值