我必须每小时更新我的MySQL数据库,我想知道使用cronjob与使用MySQL事件的优缺点是什么?例如,哪个更快?哪一个更安全?谢谢!
发布于 2013-02-11 12:58:22
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
发布于 2013-11-04 21:58:29
Mysql引入了事件调度器,我们可以使用它来替代Cronjob。与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 ;
欲了解更多信息,请访问官方网站:http://dev.mysql.com/doc/refman/5.1/en/create-event.html
详细信息博客:http://goo.gl/6Hzjvg
发布于 2016-04-11 16:04:00
我将使用mysql事件调度
因为我们不需要为它编写一个额外的文件,所以只需编写一个查询就可以实现我们的目的。
如果只需要数据库相关的操作,那么mysql事件调度是一个很好的选择。
https://stackoverflow.com/questions/14805742
复制相似问题