【问题标题】:What is the performance of subqueries vs two separate select queries? [closed]与两个单独的选择查询相比,子查询的性能如何? [关闭]
【发布时间】:2014-03-22 03:20:58
【问题描述】:

使用 SQLite 文件数据库通常比另一种更快吗?

子查询是否受益于某种内部优化,或者它们是否像您执行两个单独的查询一样在内部处理?

我做了一些测试,但我看不出有什么不同,可能是因为我的表现在太小了(少于 100 条记录)?

【问题讨论】:

  • 只有一种方法你回答:测试它
  • 关闭这个问题的理由多么愚蠢。

标签: sqlite select subquery


【解决方案1】:

这取决于许多因素。两个单独的查询意味着两个请求。请求有一点开销,但如果数据库在不同的服务器上,这会更重。对于子查询和连接,需要合并数据。少量可以很容易地合并到内存中,但是如果数据变大,那么它可能不适合,导致需要将临时数据交换到磁盘,从而降低性能。

因此,没有一般规则可以说哪个更快。做一些测试并找出这些因素是很好的。使用“真实”数据以及您期望在一年后拥有的数据量进行一些测试。

并在未来继续测试。执行良好的查询,可能会在环境或数据量发生变化时突然变慢。

【讨论】:

  • 这是使用N-Tiered 架构的绝佳理由。能够根据需要更改一个查询与另一个查询对项目来说是无价的。不要做premature optimization,而是做现在对你有用的事情,以后可以改变......不要忘记你的测试!
猜你喜欢
  • 1970-01-01
  • 2015-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多