我有一个模型post,它有一个expiry_date。我想知道什么是
在这种情况下管理可伸缩性的最佳方法。 2种选择:
每当我想从表中进行选择时,都需要在哪里添加
expiry_date>现在。如果表Post变得像怪物一样,我将进入
麻烦。想象一下3年或更长时间之后。索引也将是巨大的。
有一个触发器,cron作业或一个可以使用的插件(如果存在)
在表格周围移动,并将过期的项目移至新表格Post_Archive。
这样,我只在主表中维护当前的帖子,这意味着
在3年的时间里,我不会像选择1那样糟糕。
最佳答案
如果您需要连续存档数据(您的#2),那么最好选择MaatKit。
http://www.maatkit.org/
它可以“蚕食”成块的数据,而不是运行消耗大量资源的大规模查询(并避免污染键缓存)。
所以是的,您可以从cron运行Maatkit作业。
同时,如果您想同时执行#1,则可以实现一个视图,该视图可以方便地包装“ WHERE expiry_dat> NOW”条件,因此您不必在代码中包括所有条件。