14

在我的 web 应用程序中,我使用两个重复事件来“清理”数据库中的一个表,它们每 15 分钟左右执行一次。

我的问题是,这会导致未来的性能问题吗?因为我在某个地方读到过——我不记得具体在哪里——MySQL事件应该安排在一个月左右运行一次。问题是,同样的事件使表的大小大大减小(因为它们删除了超过 15 分钟的记录),也许这可以补偿它们的执行频率,对吧?

此外,如果以相同的频率调用它们,是一个大的 MySQL 事件还是多个小的事件更好?

4

1 回答 1

4

我认为每月基数中没有性能指标,而只是对如何处理它的建议。所以我认为你可以使用这些事件进行清理。

最后,文档表明这些事件是

从概念上讲,这类似于 Unix crontab(也称为“cron 作业”)或 Windows 任务计划程序的想法。

这些概念是,如果您愿意,您可以每分钟运行一个任务。


关于该问题的第二部分:

序列化或传播它。如果您将它们拆分为将同时运行的多个事件,您将创建可能非常高的 CPU 使用率峰值,这可能会在处理事件时减慢应用程序的速度。

因此,要么将所有内容打包成一个事件,使其连续运行,要么将单个事件分散,以便它们在 15 分钟的时间范围内的不同时间执行。就我个人而言,我认为第一个是首选,将它们打包成一个事件,因为这样它们就可以保证连续运行,即使其中一个运行时间比平时更长。

cronjobs 也是如此。如果您一次处理 30 个长时间运行的导出,那么您的应用程序将在该时间段内惨遭失败(很难学到这一点)。

于 2012-04-20T06:56:23.387 回答