我有一个很大的用户数据表。此表格选择,分组和排序数据的速度很慢,并且它具有date
和user_id
主键。
所以我想创建一个大表的副本'但只是每个用户的最新数据。
我尝试创建新的副本表,其中只有user_id主键。然后ON DUPLICATE KEY UPDATE
我应该使用触发器?怎么做最好的方法呢?
答案 0 :(得分:0)
您可以使用INSERT语句创建初始重复表,使用ON DUPLICATE KEY UPDATE选择大用户数据表中的所有数据。
然后,您需要一个定期作业来运行相同的INSERT语句以保持副本表更新,或者需要在源表(大用户数据表)上触发。
触发器解决方案将包括ON INSERT触发器,如果表也更新,则还需要ON UPDATE触发器,如果应该处理DELETES,则还需要ON DELETE触发器。
解决方案之间的差异是
我有数据库,我使用这两种解决方案,更喜欢触发器版本作为默认值,并在需要时切换到定期作业解决方案。
示例:我使用定期作业解决方案,我将夜间作业中的一天数据汇总到聚合表中,因为只有当我有一整天的数据时才会使用聚合数据。