Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 数据库定期清理_Mysql_Database_Cron_Maintenance - Fatal编程技术网

Mysql 数据库定期清理

Mysql 数据库定期清理,mysql,database,cron,maintenance,Mysql,Database,Cron,Maintenance,我正在创建一个公共消息服务,我想知道,为了清理最旧的消息,每次提交新消息时删除最旧的消息可以吗?还是因为某种原因,这种方法效率低下?如果是,你能说明原因吗 我考虑过为此创建一个Cron作业,但我不确定它是否适用于这种情况。这听起来不太合适。删除旧邮件的适当性不太可能取决于新邮件-例如,如果您打算将邮件保留至少一个月,那么如果您在短时间内突然收到大量邮件,则不希望开始删除最近的邮件 我建议您制定“垃圾”标准,然后安排一个定期作业来批量删除旧邮件(例如,每天一次)。这听起来不太合适。删除旧邮件的适当

我正在创建一个公共消息服务,我想知道,为了清理最旧的消息,每次提交新消息时删除最旧的消息可以吗?还是因为某种原因,这种方法效率低下?如果是,你能说明原因吗

我考虑过为此创建一个Cron作业,但我不确定它是否适用于这种情况。

这听起来不太合适。删除旧邮件的适当性不太可能取决于新邮件-例如,如果您打算将邮件保留至少一个月,那么如果您在短时间内突然收到大量邮件,则不希望开始删除最近的邮件

我建议您制定“垃圾”标准,然后安排一个定期作业来批量删除旧邮件(例如,每天一次)。

这听起来不太合适。删除旧邮件的适当性不太可能取决于新邮件-例如,如果您打算将邮件保留至少一个月,那么如果您在短时间内突然收到大量邮件,则不希望开始删除最近的邮件


我建议您制定“垃圾”标准,然后安排一个常规作业来批量删除旧邮件(例如,每天一次)。

我建议使用Cron作业,我相信每条邮件都有时间戳,因此您可以在Cron运行时使用时间戳删除旧邮件。

我建议使用Cron作业,我相信每条消息都有时间戳,因此您可以借助cron run上的时间戳删除较旧的帖子。

您可以在MySQL中安排一个事件:

DELIMITER $$

CREATE EVENT cleanup_messages ON SCHEDULE EVERY day ENABLE 
DO BEGIN
  DELETE FROM messages WHERE ......;
END $$

DELIMITER ;

您可以在MySQL中安排事件:

DELIMITER $$

CREATE EVENT cleanup_messages ON SCHEDULE EVERY day ENABLE 
DO BEGIN
  DELETE FROM messages WHERE ......;
END $$

DELIMITER ;

。。。双重否定总是让我头晕目眩。。。但是+1用于分离关注点…@Jordão:对不起,是的,我的意思是这听起来不太合适。编辑。谢谢,现在它有了完美的意义。。。。双重否定总是让我头晕目眩。。。但是+1用于分离关注点…@Jordão:对不起,是的,我的意思是这听起来不太合适。编辑好了。谢谢,现在它很有意义了。