我有一个程序可以跟踪当年正在玩的游戏。那一年完成后,我计划允许管理员归档那个季节。为此,我创建了该表的副本,其中包含上一季的名称。我将该名称存储在一个单独的表中。
问题是我猜我不能用表生成的表名做sql查询。
任何人都对如何处理这个有任何建议。该表每年可以有1000-2000条记录,这可能在20年内实现(可能不是技术)。我可以添加一年的列并将其用作排序,但是当我达到20K - 40K的记录时它会变慢吗?
我的另一个想法是将活动年份保存在一个表格中并将所有历史记录存档到另一个表格中?用户不关心历史记录是否需要几秒钟加载,而不是当前数据?
由于
答案 0 :(得分:0)
慢度是查询复杂性的函数,与记录大小一样多。您可以使用100行进行慢速查询,或者使用数百万行进行快速查询。如果您需要有关查询优化的特定帮助,请发布它,否则除了先前建议的索引之外没有太多可用的工作。
一般来说,10k数量级没有什么特别之处。在实际识别弱点之前,不要试图过度优化。在击中数百万行(如果不是数千万行)之前,对表格进行分区非常很少需要。你陷入了“过早优化”陷阱。除非你确定它会导致问题,否则不要这样做。
我,我会在您用于JOIN
表格的列(可能是user_id
)上抛出索引并完成它。如果您使用外键,它上面会有一个自动键。在你看到你的查询减慢了应用程序的速度之前,强迫它解决分区问题可能会带来更多弊大于利。