暂无图片
MySQL只保留10天数据怎么操作?
我来答
分享
暂无图片 匿名用户
MySQL只保留10天数据怎么操作?

MySQL只保留10天数据怎么操作?

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
张sir

1、写一个shell脚本,利用crontab每天定时启动清理10天前的数据,分批提交。

2、写一个procedure,利用mysql的event做定时,清理10天谴的数据,分批提交。

以上两个方案逻辑都一样,只不过定时方式一个是利用os的crontab,一个是利用mysql自身的功能。未来如果要迁移数据库,方案1需要同步迁移,方案2自己就过去了。

暂无图片 评论
暂无图片 有用 0
暂无图片
农夫三拳
2022-09-29
严少安
2022-09-29
👍‍分批提交 是关键。
刘贵宾

看看这两个,一个是根据表内时间字段做删除,一个是备份保留时间

https://blog.csdn.net/wukong_666/article/details/52058671
https://juejin.cn/post/6844904184425250824

例如有以下表结构

CREATE TABLE `tableInfo` (
      `ID` int(11) NOT NULL AUTO_INCREMENT,
      `MacAddr` varchar(12) CHARACTER SET utf8 NOT NULL,
      `CreateTime` datetime NOT NULL ,
      PRIMARY KEY (`ID`)
    );


1. 查询10天内的数据:
        SELECT * FROM tableInfo where TO_DAYS(NOW())-TO_DAYS(CreateTime)<10;
2. 查询大于10天的数据:
        SELECT * FROM tableInfo where TO_DAYS(NOW())-TO_DAYS(CreateTime)<10;
3. 删除10天以外的数据:
        DELETE FROM tableInfo where TO_DAYS(NOW())-TO_DAYS(CreateTime)>10;
4. 以上时间可以任意修改。
暂无图片 评论
暂无图片 有用 2
农夫三拳
2022-09-29
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏