我想知道什么是动态归档行的最佳解决方案。例如,当用户将任务标记为已完成时,该任务需要存档,但仍可以访问。
实现这一目标的最佳做法是什么?我是不是应该把它们都放在同一个表中,然后从查询中去掉已完成的任务?恐怕随着时间的推移,这个表会变得很大(一年或更短时间内有1000000行)。还是应该创建另一个表ietask_archive并在需要数据时查询该行?
我知道以前也有人问过类似的问题,但大多数都是关于同时归档数千行的问题,我只需要知道在标记完成后,一次归档一行的最佳方法(以及原因)是什么

最佳答案

为了提高速度和易用性,我通常将行放在同一个表中(并将其标记为已完成),然后将其移到存档表中。这样用户就不会在现场移动时产生延迟;移动可以在非繁忙时段作为批处理过程进行。
何时采取行动取决于你的申请。例如,如果他们有一个显示“最近完成的任务”的仪表板小部件,该小部件显示在过去一周内完成的所有任务(并允许他们钻取以查看详细信息),那么在行完成一周后将其移动到存档中可能是有意义的。或者,如果他们经常需要查看当前学期的任务(对于学术应用程序),但很少需要查看以前学期的任务,则在学期结束时进行批量迁移。
如果表被编入索引,1000000行应该没什么大不了的,老实说。

关于mysql - 动态归档行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2959736/

10-10 22:32