在我的网络应用程序中,我使用两个定期事件来“清理”数据库中的一个表,每个表都大约每15分钟执行一次。
我的问题是,这会导致未来的性能问题吗?因为我读过某个地方 - 我不记得确切地说 - MySQL events应该安排在一个月左右运行一次。事实是,同样的事件使表格大小相当缩小(因为它们删除了超过15分钟的记录),这可能会补偿执行的频率,对吗?
另外,如果以相同的频率调用一个大的MySQL事件或许多小事件会更好吗?
答案 0 :(得分:4)
我认为月度基础中的表现指示更多地是关于如何处理它的建议。所以我认为您可以使用这些事件进行清理。
最后documentation表示事件是
从概念上讲,这类似于Unix crontab(也称为“cron job”)或Windows任务计划程序的想法。
这些概念就是你可以每分钟运行一个任务,如果你愿意的话。
在该问题的第二部分:
序列化或传播它。如果将它们拆分为许多将同时运行的事件,您将创建可能非常高的CPU使用率的峰值,这可能会在处理事件时降低应用程序的速度。
因此要么将所有内容打包成一个事件,要么它连续运行,要么将单个事件分散,以便它们在15分钟的时间范围内执行不同的时间。我个人认为第一个是首选,将它们打包成一个单独的事件,因为它们保证连续运行,即使其中一个持续运行的时间比平时长。
cronjobs也是如此。如果你一次性完成30个长期运行的出口,你的应用程序将在那个时间段内惨遭失败(从中学到了很难)。