当前位置: 首页 > 知识库问答 >
问题:

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

闻飞跃
2024-06-26

把订单分成近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订单号关联的好几个表基本也这么做,我这样对不对?

共有1个答案

袁鸿畅
2024-06-26
那这个是MYSQL可以自动按时间搞定还是说程序搞定?

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

 类似资料:
  • 问题内容: 我有一个带有时间戳字段的表。如何获得最近3个月的数据? 特别是,三月是我当前的月份,请说 03/2012 。我只需要返回3月,2月和1月的记录。 问题答案: 今天前3个月: 从第一个月开始:

  • 本文向大家介绍MySQL怎么恢复半个月前的数据?相关面试题,主要包含被问及MySQL怎么恢复半个月前的数据?时的应答技巧和注意事项,需要的朋友参考一下 通过整库备份+binlog进行恢复. 前提是要有定期整库备份且保存了binlog日志.

  • 问题内容: 该查询仅显示现有月份的结果。我需要所有12个月的销售。 输出 : 所需输出 : 问题答案: 感谢@pankaj提示,在这里我通过此查询解决了…

  • 问题内容: 您好,我正在使用此sql查询来获取基于月份的图表表示形式的最近12个月的记录: 但是,如果一个月没有任何记录,则它不会按预期包含在结果集中,并且我正在使用php进行大量计算以完成所需的操作。 我的问题是:是否有一种方法可以检索一个简单的结果集,其中包含过去12个月每个月的驱动器总数,并且如果一个月中有0个驱动器,则还必须将其包含在结果集中显示。 问题答案: 您需要使用一个表进行外部联接

  • 正如标题所示,我想将两个数组串联成一个更大的数组。例如: 一切顺利。我用的方法“专业”吗?}

  • 问题内容: 我有以下代码可以成功获取两天之间的差异(以天,小时,分钟,秒为单位): 但是,当日期跨入另一个月份时,这将不起作用,例如: 是否可以智能地跨越几个月并获得准确的时差?我对Joda熟悉,但是我想坚持使用标准Java API,除非没有Joda这样的东西是不可能的。 问题答案: 您正在使用 应该 您会得到正确的结果 这是日期模式的javadoc。是每月的一天。是一年中的一天。您的对象只是没有