MYSQL 订单分成 近3个月和3个月之前两种一般怎么做?

把订单分成近3个月和3个月之前两种,是不是一般用两个表 t_order(近3个月订单) 和 t_order_old (3个月之前订单)两个表。

那这个是MYSQL可以自动按时间搞定还是说程序搞定?

我现在是 spting boot 用他的定定时任务来做?每天0点程序执行 service 方法,先把 t_order 里面3个月前数据复制到 t_order_old 里面(其实就是最后一天的数据),然后删除 t_order 3个月后的数据,还有order_id订单号关联的好几个表基本也这么做,我这样对不对?

阅读 1k
1 个回答
那这个是MYSQL可以自动按时间搞定还是说程序搞定?

都可以。
如果还是按定时任务这样操作,建议使用INSERT INTO...SELECT...语句从新表里拿数据直接添加到老表里就可以了,不需要先复制过去再做删除,这样效率比较高,而且目标表中任何已存在的行都不会受影响,比较安全
如果不是说非得拆分成两张表,可以考虑MySQL的分区表功能,可以按照时间范围对表进行分区。这样,虽然数据仍然存储在一个逻辑表中,但实际上的物理存储被分隔开了,可以在一定程度上提高查询效率,同时又不需要额外的定时任务来迁移数据。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题