繁体   English   中英

使用1条SQL检索多条记录或使用多条SQL检索单个记录

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM