2012-01-16 25 views
2

查询大表(> 150万行)3次或在同一查询中放入3个条件会更好吗?样本where条款如下。有类似或更复杂的where子句。我的直觉是把他们全部在相同的where。但需要来自社区的一些意见。提前致谢。查询大表

where (a =1 or b=1) and (a=2 or b=3) and (c=1 or d=3) 
+3

您的逻辑可能与AND和OR相反 - 您可以检查吗? –

+0

只需运行查询并亲自体验 –

+0

感谢你们所有人的时间和精力。 –

回答

4

单次访问数据库是绝对可取的。确保你索引a,b,cd列,你应该没问题。

0

将它们全部放在同一个where子句中通常会更快。但是,每个查询都是不同的,并且确保您检查每个查询的查询计划,以确保您可以获得最佳性能。

0

这一切都取决于你的模式(数据类型,键,指示等),一般来说我会说你会更好的将所有的条件添加到相同的where子句,所以查询优化器有尽可能多的信息与...合作。找出最好的方法是运行一些测试,看看哪种方法可以在数据/模式下获得最佳性能。

0

把它放在一个查询。

除了降低开销之外,您将通过这种方式消除重复项。如果您有一条符合多个条件的行,那么如果您查询多次,它将在最终结果集中显示两次。