【发布时间】:2015-09-25 17:02:48
【问题描述】:
我的问题是理论上的。假设我们在 MySQL 数据库中有一个关系数据库表,其中包含数百万行。我们想处理所有行,但我们知道整个表不适合内存。 我们会选择使用通用 SQL 查询遍历记录:
select * from table skip OFFSET limit LIMIT
哪个更好/更快/更便宜(例如 1000 万条记录)
A) 选择小偏移量和大限制,例如在 1000 个步骤中,我们为每个步骤选择 10.000 行)
B) 选择大偏移量和小限制(例如,在 10.000 步中,我们为每个步骤选择 1000 行)?
我知道skip反正很贵,但我不知道选择哪种策略更好。
更新:我想让这个问题技术独立。因此,无论我们使用哪种数据库或使用哪种技术。所以问题是我们如何获得更好的性能:
A) 在一次迭代中读取 更多 个数据,我们有 less 个迭代步骤
B) 在一次迭代中读取 less 个数据,我们有 更多 个迭代步骤?
【问题讨论】:
标签: algorithm loops pagination