2条回答
默认
最新
1、写一个shell脚本,利用crontab每天定时启动清理10天前的数据,分批提交。
2、写一个procedure,利用mysql的event做定时,清理10天谴的数据,分批提交。
以上两个方案逻辑都一样,只不过定时方式一个是利用os的crontab,一个是利用mysql自身的功能。未来如果要迁移数据库,方案1需要同步迁移,方案2自己就过去了。
评论
有用 0
看看这两个,一个是根据表内时间字段做删除,一个是备份保留时间
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回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏


