【发布时间】:2014-03-22 03:20:58
【问题描述】:
使用 SQLite 文件数据库通常比另一种更快吗?
子查询是否受益于某种内部优化,或者它们是否像您执行两个单独的查询一样在内部处理?
我做了一些测试,但我看不出有什么不同,可能是因为我的表现在太小了(少于 100 条记录)?
【问题讨论】:
-
只有一种方法你回答:测试它
-
关闭这个问题的理由多么愚蠢。
使用 SQLite 文件数据库通常比另一种更快吗?
子查询是否受益于某种内部优化,或者它们是否像您执行两个单独的查询一样在内部处理?
我做了一些测试,但我看不出有什么不同,可能是因为我的表现在太小了(少于 100 条记录)?
【问题讨论】:
这取决于许多因素。两个单独的查询意味着两个请求。请求有一点开销,但如果数据库在不同的服务器上,这会更重。对于子查询和连接,需要合并数据。少量可以很容易地合并到内存中,但是如果数据变大,那么它可能不适合,导致需要将临时数据交换到磁盘,从而降低性能。
因此,没有一般规则可以说哪个更快。做一些测试并找出这些因素是很好的。使用“真实”数据以及您期望在一年后拥有的数据量进行一些测试。
并在未来继续测试。执行良好的查询,可能会在环境或数据量发生变化时突然变慢。
【讨论】: