php - union和in相比哪个效率更高?

查看:110
本文介绍了php - union和in相比哪个效率更高?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我有一个文章表,查询多条文章记录
id是主键,还有若干像title,content,author之类的字段(post表记录300W+)

select * from post  where id in (id1,id2,id3,id4)  

select * from post where id = id1 union select * from post where id = id2 union select * from post where id = id3 union select * from post where id = id4 

的效率哪一个更高?(id的个数从1-20条不等)

解决方案

对于你这类的简单判断范围的查询,使用IN的效率要高于UNION。
在有索引的字段上使用,这两者执行的过程几乎一样,所以差不不大。
但是对于没有索引的字段,使用UNION意味着要比使用IN多扫描N次表,也就造成多N倍的时间。(这里的N代表的就是ID的个数)

所以总和来说,这种场景下使用IN更为合适。

这篇关于php - union和in相比哪个效率更高?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆