鉴于我们在关系数据库中有一个大表,我们需要查询。
我们有两个选择:
- 查询整个表
- 查询表内的数据子集,即从 1 到 1000 的行,然后是 1001 到 2000 等的行。
这种分离有意义吗?
它取决于查询结构吗?
让我们添加一些数学。给定一些查询执行时间与 n^3 成正比,其中 n 是表中的行数。这意味着在第一种情况下查询执行时间与 n^3 成正比。至于第二个选项 - 它不同。总时间为 (n/3)^3 + (n/3)^3 + (n/3)^3 = n^3 / 9 更好。
现实生活更复杂:在这种情况下查询不会相同,我们必须花一些时间将行限制为子集。
此外,数据库的连接数和并发性可能会受到限制,因此我们将无法同时通过 10 个查询来查询它,例如,至少以相同的速度。
但这些理由有意义吗?这可能有助于减少一些大桌子的时间费用吗?