公司最近要上线一个活动促销功能,当用户消费时查看这个用户是不是已经在之前购买过2次,如果已经购买过2次就要给它相对应的折扣。但是麻烦的是用户购买记录表里面因为数据很多,包括了用户购买成不成功的数据,导致如果每次都从里面查的话性能影响很大。
所以现在我们想这样做,就是直接弄个定时器,定时一天4次更新一次用户购买记录表的数据到一张表匹配出按用户分组来查看购买成功的次数,从而每次都从这张购买成功的表里面查就可以了。
关键是:我们是linux服务器,mysql数据库该如何实现这个定时更新一个数据库的表数据到另一张表的功能呢?谢谢了。
你如果用定时器就搜一个定时任务的库,然后当个服务专门用来跑这个东西。
1.数据库单独出来,同步主要的数据库。然后定时查询,定时修改,再同步回去。这个同步可以直接改主数据库。
2.可以使用异步消息模式,每当有新的购买记录的时候就通知另外一个服务启动,将用户的数据更新一次,这个可以使用rabbitmq之类的
3.可以使用数据库的触发器,每当有新的记录产生的时候就执行一次sql语句,里面就有更新判断等
以上随便都可以实现