Postgresql:哪个更快:使用OR子句查询,还是两个单独的查询?
在这两个查询之间,数据库执行哪个查询更快Postgresql:哪个更快:使用OR子句查询,还是两个单独的查询?,sql,postgresql,Sql,Postgresql,在这两个查询之间,数据库执行哪个查询更快 select a, b, c from t where x = y or x = z; vs 这两种方法中的任何一种都适用于我的应用程序,因为结果将被放入一个映射中,该映射将自动删除重复项。因此,我想知道是否有一个技术原因,一个比另一个更可取。如果你在x和y和z上有一个索引,那么它们应该差不多 如果y和z是列,则索引将没有帮助。如果没有索引可以使用,那么带有或的版本应该快两倍,因为它只扫描表一次而不是两次。如果在x和y和z上有一个索引,它们应该基本相同
select a, b, c from t where x = y or x = z;
vs
这两种方法中的任何一种都适用于我的应用程序,因为结果将被放入一个映射中,该映射将自动删除重复项。因此,我想知道是否有一个技术原因,一个比另一个更可取。如果你在
x
和y
和z
上有一个索引,那么它们应该差不多
如果
y
和z
是列,则索引将没有帮助。如果没有索引可以使用,那么带有或的版本应该快两倍,因为它只扫描表一次而不是两次。如果在x
和y
和z
上有一个索引,它们应该基本相同
如果y
和z
是列,则索引将没有帮助。如果不能使用索引,则带有或的版本应该快两倍,因为它只扫描表一次而不是两次。当您从一个具有两种不同条件的表中选择相同的列时,可以尝试union运算符
Select a,b,c from tab1 where d=cond1 union select a,b,c from tab1 where d=cond2
当您从一个具有两种不同条件的表中选择相同的列时,可以尝试union运算符
Select a,b,c from tab1 where d=cond1 union select a,b,c from tab1 where d=cond2