拥有可以访问的存档的最佳方式
Best way to have archive which you can access
我有一个数据库需要每年归档一次。去年的数据有时需要在明年使用,所以我有一个年份列可以有 3 个值(0 - 从当年开始,1 - 从去年开始使用,2 - 保存但不使用).数据库如下:
Table1
id,year ...
Table2
id,id_table1 ...
Table3
id,id_table2 ...
Table4
id,id_table3 ...
这些是需要归档的表 table1.year = 2
。存档数据也需要可访问,并且至少需要回溯 2 年。每年行数约为:Table1 - 50行; Table2 - 250 (Table1 x5); Table 3 - 2500 (Table2 x 10); Table 4 - 5000 (Table3 x 2);
我查看了分区,但无法弄清楚如何将这四个分组以便它们都可以移动到一个单独的分区。
除非你有超过一百万行,否则不要为 PARTITIONing
烦恼。
一个有 8000 行的 table 是 'tiny';将它们全部放在一个 table 中。如果已经有 DATE
或 DATETIME
列,您甚至不需要额外的列来指示 "year"。而且您不需要 id_table2
(等)。
如果您想进一步讨论,请提供SHOW CREATE TABLE
和一些问题。
我有一个数据库需要每年归档一次。去年的数据有时需要在明年使用,所以我有一个年份列可以有 3 个值(0 - 从当年开始,1 - 从去年开始使用,2 - 保存但不使用).数据库如下:
Table1
id,year ...
Table2
id,id_table1 ...
Table3
id,id_table2 ...
Table4
id,id_table3 ...
这些是需要归档的表 table1.year = 2
。存档数据也需要可访问,并且至少需要回溯 2 年。每年行数约为:Table1 - 50行; Table2 - 250 (Table1 x5); Table 3 - 2500 (Table2 x 10); Table 4 - 5000 (Table3 x 2);
我查看了分区,但无法弄清楚如何将这四个分组以便它们都可以移动到一个单独的分区。
除非你有超过一百万行,否则不要为 PARTITIONing
烦恼。
一个有 8000 行的 table 是 'tiny';将它们全部放在一个 table 中。如果已经有 DATE
或 DATETIME
列,您甚至不需要额外的列来指示 "year"。而且您不需要 id_table2
(等)。
如果您想进一步讨论,请提供SHOW CREATE TABLE
和一些问题。