php - union和in相比哪个效率更高?
本文介绍了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屋!
查看全文