直截了当,我试过在谷歌和 SO 上搜索,但找不到我要找的东西。这可能是因为我的搜索措辞不正确。
我的问题是,
我有几张桌子,每年可以容纳 1,000 到 100,000 行。我想弄清楚,我/我应该如何处理归档数据?我对数据库的经验并不丰富,但下面是我想出的一些方法,我不确定哪种方法更好。当然要考虑性能和易于编码。我正在使用 Java 1.8、Sql2o 和 Postgres。
方法 1
每年将数据归档到单独的数据库中。
我不太喜欢这种方法,因为当我们想要搜索旧数据时,我们的应用程序将需要搜索不同的数据库,并且为此添加更多代码对我来说很麻烦。
方法 2
将 2-3 年以前的数据归档到单独的数据库中。
并使用在线状态来提高性能。(参见方法 3)这是我倾向于作为“最佳”解决方案的东西,其中代码不那么复杂,但也让 DB 保持相对干净。
方法 3 只需为每一行设置状态(例如:A=active,R=Archived)以可能提高查询的性能。 只需使用“select * from table where status = 'A'”来减少要查看的行数。