【发布时间】:2014-02-01 23:25:33
【问题描述】:
我和我的一个朋友发生了争执。假设我们有一个带有用户 ID 和其他一些字段的数据库表。该表可能有很多行。我们还假设通过设计我们将表中每个用户 ID 的记录限制为大约 50 条。我的朋友建议如果我在每个用户 ID 的每一行下一个接一个地查找会更快,例如
userid otherfield
1 .........
1 .........
.....until 50...
2 ........
等等。因此,当创建用户 id 1 时,我将 50 个表的行预填充为空值……等等。这个想法是,如果我知道行数并找到用户 ID = 1 的第一行,我只需查看下一个 49 行,瞧,我不必搜索整个表。这是正确的吗?可以在没有索引的情况下完成吗?预填充是一个昂贵的过程吗?如果我只是以老式方式插入,是否会有性能差异
1 ........
2 ........
2 ........
1 ........
等等?
【问题讨论】:
-
很难准确理解您的提议,但从我收集到的信息来看,这听起来是个坏主意。不要试图用这样一个过于复杂的解决方案来智取 MySQL。只有痛苦会来自它。你能展示你的表结构和建议的查询吗?
标签: mysql optimization query-optimization