【发布时间】:2011-10-01 09:48:33
【问题描述】:
我正在创建一个公共消息服务,我想知道,为了清除最旧的消息,是否可以在每次提交新消息时删除最旧的消息?还是由于某种原因这种方法效率低下?如果有,您能具体说明原因吗?
我考虑为此创建一个Cron Job,但我不确定它是否适用于这种情况。
【问题讨论】:
标签: mysql database cron maintenance
我正在创建一个公共消息服务,我想知道,为了清除最旧的消息,是否可以在每次提交新消息时删除最旧的消息?还是由于某种原因这种方法效率低下?如果有,您能具体说明原因吗?
我考虑为此创建一个Cron Job,但我不确定它是否适用于这种情况。
【问题讨论】:
标签: mysql database cron maintenance
您可以在 MySQL 中安排活动:
DELIMITER $$
CREATE EVENT cleanup_messages ON SCHEDULE EVERY day ENABLE
DO BEGIN
DELETE FROM messages WHERE ......;
END $$
DELIMITER ;
【讨论】:
我建议 Cron Job,我相信每条消息都有时间戳,因此您可以在 cron 运行时借助时间戳删除旧帖子。
【讨论】:
这听起来不太可能是合适的。删除旧消息的适当性不太可能取决于新消息 - 例如,如果您打算将消息保留至少一个月,那么如果您突然收到短时间内收到大量消息。
我建议您制定您的“垃圾”标准,然后安排定期作业批量删除旧邮件(例如每天一次)。
【讨论】: