我应该如何在MySQL中分区年度数据

时间:2011-06-20 22:12:05

标签: mysql

我正在考虑重新架构现有的应用程序,并且想知道如何最好地处理这些表。

目前,我们每年有一张桌子(data_2009,data_2010等)。大多数查询仅按年份完成 - 例如,从data_2010中选择sum(sales),其中user = 10。

每年约有100万行;到目前为止,我们已经有10年了,而且我们可能会无限期地继续下去。

然而,有时候,应该一直进行计算。目前,每年运行一次的单独汇总表处理不当,每个用户每月都有行(然后用当前年份汇总/计算等)。这有各种限制,我想放弃汇总表的想法。

每年有一张大桌子并创建视图会更好吗?或者留在单独的桌子上并持续观看?例如

的视图

从data_2005中选择* 联盟 从data_2006中选择* 等

一个问题是如何处理索引 - 如果我在字段“user”上有索引,比如说,在两种情况下都使用了吗?

1 个答案:

答案 0 :(得分:1)

使用一个表,但使用表分区和年份分区。有关分区的更多信息可以在这里找到

http://dev.mysql.com/doc/refman/5.1/en/partitioning.html