哪个是更快的单个大查询或几个小查询?
Posted
技术标签:
【中文标题】哪个是更快的单个大查询或几个小查询?【英文标题】:Which one is faster single big query or few small queries? 【发布时间】:2015-07-12 04:11:52 【问题描述】:所以我想从数据库中抓取数据,哪种方法更快,创建几个查询还是一个多查询?
【问题讨论】:
相关:PDO support for multiple queries (PDO_mysql, PDO_MYSQLND) 几乎相同的问题在哪里?请提供链接,并说明您不清楚答案的哪些部分。您是说这个问答:"Which is faster / more efficient - lots of little MySQL queries or one big php array?" 吗? @hakre 不,我读到了this。我什至读过一些关于这个的文章,但它仍然很复杂,每个人都在说“我认为”,“在我看来”,“我的选择是......”,没有人确定。我想要具体的,真实的答案取决于现实。和这个链接的 ty。 我完全可以理解您想要一个具体的答案,但是对于这样一个具体的问题也是必要的。同样,您命名的这些主观答案通常也不适合像 *** 这样的问答网站,help center 有more info。请注意答案通常反映问题的风格,因此通过改进您的问题,您可以改进以获得更好的答案。从我在这里看到的情况来看,如果您想防止获得主观答案,则需要改进问题。 @hakre 好的,我以前从未使用过类似 *** 的东西,我会考虑你的建议 【参考方案1】:到数据库的每次“往返”都会产生一些开销。因此,往返次数越少,开销就越少。还要考虑更少的请求意味着从客户端到服务器的数据包更少。如果合并查询的结果为您提供了您想要的结果,那么单个查询就是您要走的路。如果您的单个查询返回额外或冗余数据(可能是因为反规范化),那么单次往返节省的开销可能会在传输的额外数据中丢失。
另一个考虑因素是延迟。如果查询必须按顺序完成,因为下一个的输入需要某个输出的某些部分,则合并到一个查询中将消除所有单个较小查询之间的所有网络延迟,因此最终结果可以交付速度更快。但是,如果较小的查询彼此独立,则并行启动它们可以更快地交付所有结果,尽管效率较低。
底线:答案取决于您的具体情况。获得答案的最佳方法可能是实现两种方式,测试并比较每种实现的资源使用情况。
【讨论】:
【参考方案2】:一般来说,这将是一个多查询。但这取决于很多东西,例如硬件、数据结构等。
但是每个连接都需要一点时间。
【讨论】:
以上是关于哪个是更快的单个大查询或几个小查询?的主要内容,如果未能解决你的问题,请参考以下文章
我应该使用一个大的 SQL Select 语句还是几个小的 SQL Select 语句?