mysql自定义日志保留10000条,可通过定时任务去调用(定时任务实现没写,仅删除多余日志语句)

方式一:

DELETE from t_send_log WHERE id IN (SELECT * from (SELECT id from t_send_log where _rowid >10000 ORDER BY visit_time DESC ) x )

__________________________________________________________________

方式一不好用的话用方式二:

DELETE from t_interactive_log WHERE id not IN (SELECT * from (SELECT id from t_interactive_log  ORDER BY visit_time DESC limit 10000) x )

方式二的体现 

if (countInterActiveLog > (Integer.valueOf(ConstantEnum.LOG_COUNT.getValue()).intValue())) {
    String deleteSqlForInteractiveLog = "DELETE from t_interactive_log WHERE id not IN (SELECT * from (SELECT id from t_interactive_log  ORDER BY visit_time DESC limit " + ConstantEnum.LOG_COUNT.getValue() + ") x )";//保留最新50000条接收日志
   sqlMapper.delete(deleteSqlForInteractiveLog);
}

__________________________________________________________________

 方式三

interactiveLogMapper.deleteBeforeDays(365);//保留近365日接收日志
<delete id="deleteBeforeDays" >
      DELETE
      FROM
      t_interactive_log
      WHERE
      t_interactive_log.id IN (
      SELECT
      x.id
      FROM
      (
      SELECT
      id
      FROM
      t_interactive_log
      WHERE
      visit_time <![CDATA[<=]]> DATE_SUB(CURDATE(), INTERVAL #{dayNumber,jdbcType=INTEGER} DAY)
      ORDER BY
      visit_time DESC
      ) x
      )
</delete>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值