我正在创建一个公共消息服务,我想知道,为了清理最旧的消息,每次提交新消息时是否可以删除最旧的消息?或者这种方法由于某种原因效率低下?如果是这样,你能说明原因吗?
我考虑为此创建一个 Cron作业,但我不确定它是否适用于这种情况。
答案 0 :(得分:3)
您可以在MySQL中安排活动:
DELIMITER $$
CREATE EVENT cleanup_messages ON SCHEDULE EVERY day ENABLE
DO BEGIN
DELETE FROM messages WHERE ......;
END $$
DELIMITER ;
答案 1 :(得分:1)
听起来不太可能是合适的。删除旧邮件的适当性不太可能取决于新邮件 - 例如,如果您要将邮件保留至少一个月,那么如果您突然获得邮件,则不希望开始删除最近的邮件在很短的时间内收到很多消息。
我建议您制定出“垃圾”标准,然后安排常规工作批量删除旧邮件(例如每天一次)。
答案 2 :(得分:1)
我建议使用Cron Job,我相信每条消息都有时间戳,因此您可以在cron run上使用时间戳帮助删除旧帖子。