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