mysql知识点归纳-定时器篇

Posted 归来仍是少年-youg

tags:

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

愿历尽千帆,归来仍是少年

缘由:

  将服务端-业务代码层逻辑抽离出来,以定时器的形式实现。(旨在解决服务端与数据库交互耗时导致数据更新误差)

#1.查看数据库的event功能是否开启 因为在数据库中的event默认是关闭的
show VARIABLES LIKE \'%sche%\';
        
#2.如果value显示为off或者0说明是关闭的,这时我们需要手动打开定时器
SET GLOBAL event_scheduler = 1;
        
#3.创建测试表

  CREATE TABLE `test` (
    `ROW_ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT \'自增主键\',
    `OPERATE_TIME` datetime DEFAULT NULL COMMENT \'时间\',
    PRIMARY KEY (`ROW_ID`)
  ) ENGINE=InnoDB AUTO_INCREMENT=1063 DEFAULT CHARSET=gbk;


#4.这是判断我们要执行的文本是否存在,如果存在,就删除这个文本(本质就是我们的定时器定时执行的代码块) delimiter
// drop procedure if exists test_proce//   #创建event要调用的存储过程test_proce (其实就是创建文本/代码块。) create procedure test_proce() begin #向test表里面添加当前时间(代码块中的执行命令 我选择的是一个添加,因为容易看到效果) insert into test(time) values(now()); end//
#5.创建事件test_event(其作用:每隔一秒自动调用test_proce()存储过程)   create
event test_event #这句话是设置时间多长时间执行一次 on schedule every 1 second on completion preserve disable #这个是指定要执行的代码块,在上面已经定义过了 do call test_proce();
#6.开启事件test_event 因为创建的事件的启用属性默认是关闭的,我们将他的属性设置为开启 #就可以使用当前定时器 test_event 是要执行的事件名字 alter
event test_event on completion preserve enable; #7.关闭事件,其中 test_event 是要关闭的事件名字 alter event test_event on completion preserve disable; #8.查询test表中的数据 select * from test;

整体流程简介:
1.开启mysql数据库的event功能
2.创建一个类似于要执行的代码块。
3.创建一个事件,这个事件中有诸多属性,可以设置执行时间间隔以及指定执行的代码块
(执行的代码块就是上一步创建的那个)
4.因为创建的事件的执行属性默认是关闭的,所以我们要去修改这个事件的属性为开启。

以上是关于mysql知识点归纳-定时器篇的主要内容,如果未能解决你的问题,请参考以下文章

大数据基础篇----jvm的知识点归纳-5个区和垃圾回收机制

MySQL Innodb表导致死锁日志情况分析与归纳

MySQL数据篇--存储过程实现定时每天清理过期数据

MySQL Innodb表导致死锁日志情况分析与归纳

SpringBoot知识体系实战-定时器篇

探索篇 | C语言基础归纳 No.1