Cronjob还是MySQL事件?

Mic*_*ith 26 mysql cron mysql-event

我每小时都要更新我的MySQL数据库,我想知道使用cronjob VS MySQL事件的优点/缺点是什么?例如,哪个更快?哪个更安全?谢谢!

Boh*_*ian 22

我总是去做一个cron工作,因为:

  • 这就是系统管理员期望它的地方(这一点不容小觑)
  • crobtab是防弹,经过时间检验,极其广泛使用和理解
  • 您可以随意指导/分析错误/成功消息
  • 一些数据库任务需要/更喜欢mysql离线(例如完全备份),所以你必须使用cron来做这些 - 用cron完成一些任务是一个坏主意,有些是用mysql完成的; 你不确定在哪里看
  • 如果你有一个shell脚本,你可以链接其他应该遵循的事件

最后,仅仅因为你可以做某事,并不意味着这是一个好主意.Mysql擅长数据.不要将它用于"外壳"的东西.


use*_*117 20

MySQL事件调度程序 - cron的一个很好的替代品.

我们都知道cron,这是一种安排某些进程的简单方法,比如每周截断MySQL数据库中的日志表.

使用MySQL 5.1,MySQL的人们引入了一个新的酷功能:MySQL事件调度程序!

使用事件计划程序,您可以计划要在数据库上执行的任务.这对于无法在其网站空间上创建cron作业的Web开发人员来说非常有用,因为他们的主机不会让他们这样做!它确实是cron的绝佳替代品!

几个例子:

您希望每周截断您的应用程序日志表,这就是您的事件计划应如下所示:

CREATE EVENT PurgeLogTable
ON SCHEDULE EVERY 1 WEEK
DO
BEGIN
DELETE FROM `logs` WHERE `LogTime` <= DATE_SUB(CURRENT_TIMESTAMP,INTERVAL 1 WEEK);
INSERT INTO `audit` (`AuditDate`, `Message`) VALUES(NOW(), "Log table purged succesfully!");
END
Run Code Online (Sandbox Code Playgroud)


Sur*_*shi 8

Mysql引入了事件调度程序,我们可以使用替代Cronjob.与cronjob相比有许多优点:

1)它直接写在Mysql Server上.

2)这与平台无关.您的申请可能以任何不重要的语言撰写.你只需要知道mysql.

3)只要在规则间隔需要数据库更新或清理,我们就可以使用它们.

4)每次都不需要编译查询,因此性能提高了.

5)错误可以登录日志文件.句法:

DELIMITER //
CREATE EVENT eventName
ON SCHEDULE EVERY 1 WEEK
STARTS 'Some Date to start'
ENDS 'End date If any' 

DO
BEGIN
   // Your query will be here
END//
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请访问官方网站:http://dev.mysql.com/doc/refman/5.1/en/create-event.html

详细博客:http://goo.gl/6Hzjvg