查询大表(> 150万行)3次或将3个条件放在同一个查询中是否更好?示例where
子句如下。有类似或更复杂的where
条款。我的预感是将所有这些都放在同一个where
。但需要社区的一些意见。提前谢谢。
where (a =1 or b=1) and (a=2 or b=3) and (c=1 or d=3)
答案 0 :(得分:4)
单次访问数据库绝对是首选。确保您对a
,b
,c
和d
列编制索引,您应该没问题。
答案 1 :(得分:0)
通常,将它们全部放在同一个where
子句中会更快。但是,每个查询都不同,请确保检查每个查询的查询计划,以确保您可以获得最佳性能。
答案 2 :(得分:0)
这一切都取决于你的模式(数据类型,键,标记等),一般来说我会说你最好将所有条件添加到同一个where子句中,以便查询优化器尽可能多地使用信息来工作用。找出答案的最佳方法是运行一些测试,以确定哪种方法可以在数据/架构上产生最佳性能。
答案 3 :(得分:0)
将所有内容放在一个查询中。
除了减少开销外,您还可以通过这种方式消除重复。如果您的行符合多个条件,则如果您多次查询,它将在最终结果集中显示两次。