0

我有一个程序可以跟踪当年正在玩的游戏。在那一年结束后,我打算让管理员存档那个季节。为此,我创建了该表的副本,并为上一季命名。我将该名称存储在单独的表中。

问题是我想我无法使用从表生成的表名进行 sql 查询。

任何人都对如何处理这个问题有任何建议。该表每年可能有 1000-2000 条记录,这可能会在 20 年内到位(可能没有技术)。我可以为一年添加一列并将其用作排序,但是当我达到 20K - 40K 的记录时它会变慢吗?

我的另一个想法是将活跃年份保存在一个表中并将所有历史记录存档到另一个单独的表中?用户不关心历史是否需要几秒钟来加载,而不是当前数据?

谢谢

4

1 回答 1

0

慢度是查询复杂度的函数,也是记录大小的函数。您可以进行 100 行的慢速查询或数百万行的快速查询。如果您需要有关查询优化的具体帮助,请将其发布,否则除了先前建议的索引外,没有太多可使用的。

通常,10k 数量级并没有什么特别的。在真正确定弱点之前,不要试图过度优化。在达到数百万(如果不是数千万)行之前,很少需要对表进行分区。你陷入了“过早优化”的陷阱。除非你确定它会导致问题,否则不要这样做。

我,我会在您使用的表格列上创建一个索引JOIN(可能user_id)并完成它。如果您使用外键,则有一个自动的。直到您看到您的查询减慢了应用程序的速度,您可能会通过强制它解决分区问题来弊大于利。

于 2013-03-16T01:34:50.623 回答