[英]Using 1 SQL to retrieve multiple records or multiple SQL to retrieve individual records
我想问一下1是否有其他性能优势。
这是一个例子:
// suppose I want to retrieve 10000 different records
select *
from table_a
where from in (1,2,3,4,5,6 .... 10000)
// alternatively
select *
from table_a
where from=1 or from=2 or from=3 ... from=10000
相比
select * from table_a where from=1
select * from table_a where from=2
select * from table_a where from=3
.
.
select * from table_a where from=10000
一个方案胜过另一个方案的情况是什么?
WHERE
子句在这里得到简化,它可能具有嵌套的AND和OR子句。
除了您的简单示例之外,还有许多因素。
对于您的确切示例,1个查询优于1000个查询,因为示例很简单并且针对一个字段。 主要因素是网络I / O操作,物理和/或逻辑读取等。
但是,如果您有更多的WHERE条件,尤其是在有连接的情况下,那会是更好的问题。 它取决于实际的数据库表,关系,索引设计,联接的类型,表的大小和(如此等等)。在大多数情况下,一般的方向是1 SQL更好,但是其他因素可能比这更重要。
一切都始于非常仔细的数据库设计。 那里的错误(经常发生),之后花费很多。 如果数据库设计不当,通常1000个查询会更好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.