MySQL定时任务

原文链接:https://jiyiren.github.io/2016/03/27/Mysql_schedule/

最近项目里面的后台需要用到定时任务,而 MySQL 从 5.0 开始自带了定时事件操作,所以学习下并做下记录。

后台周期定时任务可以有多种解决方案,我所知道的大概有以下几种:

(1). 后台框架自带定时任务。比如 Php 中的 Laravel 框架里有提供定时任务操作接口,其他的框架大家可以单独针对了解。

(2). 服务器操作系统层面的定时。通常我们的服务器主要基于两大平台,一个 Windows Server, 它的定时任务系统有提供的。Linux 下也有,通常流行的是 crontab 工具实现的 ( 想了解这里有个 视频教程 ), 但是 crontab 的定时任务通常定时操作脚本这样的文件,而直接定时操作数据库的就比较麻烦了。但是也有解决办法,就是在服务器端写一个 get 请求 url,在后台里完成要定时完成的数据库操作,这样我们只要实现定时访问该接口就行了,Linux 下的 curl 命令可以很方便发出 get 请求,我们只要写个包含访问该接口的脚本,再结合 crontab 就可以完成后台数据的定时更新操作了。

(3). 但是毕竟写个接口安全性不是太高,而大家用的如果是 MySQL 数据库,那就正好可以利用其自带的定时操作了,下面简单介绍 MySQL 定时操作的使用。

MySQL 配置

查看定时策略是否开启,查看命令:

show variables like '%event_sche%';

显示的 event_scheduler 为 OFF 时用以下命令开启:

set global event_scheduler=1;

以上的改法在数据库重启后将会恢复为原来状态,要想数据库重启后也可以让 event_scheduler 开启,则需要在配置文件 my.ini 的设置。修改如下,然后重启 MySQL 服务即可:

[mysqld]
event_scheduler=ON // 这一行加入 mysqld 标签下

创建 procedure ( 存储过程 )

什么是 procedure ( 存储过程 ) ?
   存储过程?当我听到这个词的时候,以为它是 MySQL 存储数据的一个流程而不是一个名词,但是当我网上了解时,才知道这个词是翻译过来的,原生词为 Procedure, 实际上它的含义就是相当于我们面向对象里的方法或者说是 函数,在它里面可以完成多个 sql 语句的操作,并且可以定义参数传值等,与一般的单条 sql 语句的区别主要在这里,详细了解 点我

创建存储过程

先上一段创建存储过程代码:

use test;
delimiter //
create procedure test_proce
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值