查询速度

时间:2014-12-23 18:06:31

标签: sql hiveql

在大型数据库中,执行诸如

之类的查询会更快
select * from table where a = 1 and b = 2 or b = 3 or b = 4;

select * from table where a = 1 and b = 2;
select * from table where a = 1 and b = 3;
select * from table where a = 1 and b = 4;

2 个答案:

答案 0 :(得分:2)

您应该依靠DBMS为您进行优化。如果第二个更快,那么DBMS无论如何都会这样做。

选择第一个(但是将括号括在b条件下,正如Tommy建议的那样。)

答案 1 :(得分:1)

正如其他人所指出的那样,查询并不等同。我假设第一个查询应该是:

select * from table where a = 1 and (b = 2 or b = 3 or b = 4);

为清楚起见,我建议:

select * from table where a = 1 and b in (2, 3, 4);

一般情况下,这比在第二种选择中提出三种不同的查询要好。