1

执行 SQLite 查询时,返回数据集的大小是否会影响查询所需的时间?让我们假设这个问题我实际上并没有访问结果中的任何数据,我只是想知道查询本身是否需要更长的时间。还假设我只是选择所有行并且没有 WHERE 或 ORDER BY 子句。

例如,如果我有两个表 A 和 B。假设表 A 有一百万行,表 B 有 10 行,并且两个表具有相同数量和类型的列。选择表 A 中的所有行会比选择表 B 中的所有行花费更长的时间吗?

这是我的问题的后续行动游标如何引用已删除的行?. 我猜如果在查询期间 SQLite 复制了数据,那么返回大数据集的查询可能需要更长的时间,除非有一个优化,如果数据库中的数据发生变化,则只复制查询结果数据而查询仍然存在?

4

1 回答 1

0

根据某些细节,是的,查询可能需要不同的时间。

示例:我有一个包含 20k 个条目的表。我做了一个 GLOB 搜索,必须尝试每一行,有一个限制。如果满足 LIMIT,则查询可以提前停止。如果不是,它必须遍历整个表(或 JOIN)。因此,结果太多的搜索比只有少数结果的搜索返回得更快。

如果查询必须运行相同数量的数据,我不希望在较小和较大数量的选定行之间存在显着差异。当然,可能会有 IO 成本。

于 2012-04-25T09:21:41.327 回答