Mysql事件

Posted 路漫漫其修远兮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql事件相关的知识,希望对你有一定的参考价值。

需求

由于公司的项目运营了五六年之久,数据量庞大,有的表已经达到了几百M,为了不影响查询效率,需要定期把一些日志老数据删除,公司负责人把之前的清理数据文档发来作为参考,发现了一些比较陌生的字眼,百度一看,原来是mysql事件。

了解

熟悉linux系统的人都知道linux的cron计划任务,能很方便地实现定期运行指定命令的功能。其实Mysql事件就和Linux的cron功能一样,Mysql在5.1以后推出了事件调度器(Event Scheduler),能方便地实现 mysql数据库的计划任务,而且能精确到秒。

实践

Linux:Centos6.5,  Mysql:5.7.22

想要使用Mysql的事件功能,前提是确保服务开启,我这里是开启的。

MySQL [test]> show variables like event_scheduler;
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| event_scheduler | ON    |
+-----------------+-------+
1 row in set (1.76 sec)

如果没有开启,进入Mysql客户端,执行以下命令开启

SET GLOBAL event_scheduler = ON;
SET @@global.event_scheduler = ON;
SET GLOBAL event_scheduler = 1;
SET @@global.event_scheduler = 1;

当然也可以执行以下命令关闭

SET GLOBAL event_scheduler = OFF;
SET @@global.event_scheduler = OFF;
SET GLOBAL event_scheduler = 0;
SET @@global.event_scheduler = 0;

提醒:虽然这里用set global event_scheduler = on语句开启了事件,但是每次重启电脑。或重启mysql服务后,会发现,事件自动关闭(event_scheduler=OFF),所以想让事件一直保持开启,最好修改配置文件,让mysql服务启动的时候开启时间,只需要在my.ini配置文件的[mysqld]部分加上event_scheduler=ON 即可,如下

编辑mysql的配置文件my.cnf,在[mysqld]中添加下面一行代码

[mysqld]
event_scheduler=ON

然后重启Mysql服务

# service mysqld restart --event_scheduler=ON  //通过制定事件参数启动

 

以上是关于Mysql事件的主要内容,如果未能解决你的问题,请参考以下文章

部分代码片段

linux中怎么查看mysql数据库版本

Android:将片段和弹出窗口的点击事件中生成的变量传递给活动的方法

C#常用代码片段备忘

从活动中调用片段事件

从mysql的片段中加载ListView