mysql in和多表查询的效率问题

mysql in和多表查询的效率问题,第1张

SELECT b.id FROM t_address a, t_unit b WHERE b.utj=1 AND b.ufreeze=2 AND a.id=b.uads and a.sid=3

就这个啦!!

原因很简单

b.utj=1不满足的话,那么系统就直接找下一个数据

用的in的话,如果第一个不满足,那么就匹配第二个,第二个不满足,在匹配第三个

,全部不匹配 才找下一条数据!!

这个就可以看到了,可能用IN的话,效率可能会减慢3倍,打个比方

第一种情况:in和or所在列为主键的情形。

第二种情况:in和or所在列创建有索引的情形。

第二种情况:in和or所在列没有索引的情形。

每种情况又采用不同的in和or的数量进行测试。由于测试语句的数据量有4种情况,我这里就称为A组、B组、C组、D组,其中A组为3个值,B组为150个值,C组为300个值,D组为1000个!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7277022.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存