MYSQL 中单id查询与IN查询,哪个效率更高?

MYSQL 中单id查询与IN查询,哪个效率更高?,第1张

在查询效率上,是第一个快

但是在对服务器的io压力上,倾向于使用第二个

因为一次查询就是一次mysql链接,占一个磁盘io。而且mysql一般的链接数是2000.你这一循环就一下占100个链接,虽然不会那么夸张,但是如果是高并发的情况。。就不容乐观了。

所以推荐使用第二个。

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倍,打个比方

mysqlin元素过多导致全表扫描效率低。如果in里的参数过多,mysql可能会放弃走索引,进而进行全表扫描,影响效率。这种情况可以把in里的参数拆分,使得sql重新走上索引,多个结果走索引后再合并,也比全表扫描快。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存