在大型数据库中,执行诸如
之类的查询会更快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;
答案 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);
一般情况下,这比在第二种选择中提出三种不同的查询要好。