知识点十八:MySQL定期维护(37)

  一、Mysql的定时器

      所谓的定时器,指的是在某个时间段去执行同样的代码。比如闹钟。每到指定的时间闹铃就会响。同样的,我们这个定时器,只要满足我们的一个定时条件,只要说我们每隔5秒,或者每隔1秒,

        那么这里面每隔5秒,或者每隔1秒就是它的定时条件,只要满足这个定时条件,那么它就会去执行之前给它预定的这样一个执行代码。

  二、Mysql设置定时器

      mysql版本是从5.1开始才支持event的。如果你的版本低于5.1就先升级版本吧。查看版本的方法有很多:select version();

      1. 查看是否开启evevt与开启evevt

        MySQL evevt功能默认是关闭的,可以使用下面的语句来看evevt的状态,如果是OFF或者0,表示是关闭的。

          show VARIABLES LIKE '%sche%';

        开启evevt功能。

          SET GLOBAL event_scheduler = 1;

        关闭event功能:

          SET GLOBAL event_scheduler = 0;

  三、创建定时器

 drop table if exists eventtable;
create table eventtable(
id INT NOT NULL AUTO_INCREMENT KEY,
time datetime NOT NULL
)ENGINE=InnoDB DEFAULT CHARSET=utf8; drop PROCEDURE if exists p_event_insert;
delimiter //
CREATE PROCEDURE p_event_insert()
BEGIN
INSERT INTO eventtable(time) VALUES(now());
END
//
delimiter ;

默认数据

    1、创建事件test_event(其作用:每隔一秒自动调用一段sql语句

        drop event if exists test_event;
        create event test_event
        on schedule every 1 second
        on completion preserve disable
        do call p_event_insert();

    --注意:当为on completion preserve 的时候,当event到期了,event会被disable,但是该event还是会存在,

        当为on completion not preserve的时候,当event到期的时候,该event会被自动删除掉。

    2、开启事件test_event

        alter event test_event on completion preserve enable;

    3、关闭事件test_event

        alter event test_event on completion preserve disable;

    4、创建步骤总结:

        1.现在我们要去创建一个定时器,在创建之前我们要创建这样一张表,就是定时的向这个数据库去插入一条记录,首先,选择数据库。

        2.如果数据库存在这张表则删除这张表。

        3.再创建这张表,这个存储过程主要是用来向这张表中去插入一条数据记录。

        5.如果存在这个存储过程就删掉。

        6.修改分隔符。

        7.再创建这个存储过程。

        8.创建好之后,把它的分隔符修改好。

        9.这里面就是我们创建的存储过程,这个就是向我们的这个表中去插入一条数据记录,现在我们要创建一个定时器,这个定时器就是每隔1秒,或者每隔多少时间,

           我们就去执行这个存储过程,在创建这个定时器之前,我们还是先考虑如果存在这个定时器的话我们就把它删掉。

        10.创建这个定时器。

        11.开启这个定时器。

        12.过一段时间关闭定时器并查询结果。

 --总结创建步骤

 --检查表中书否存在这张表,存在则删除
drop table if exists eventtable; --创建这张表
create table eventtable(
id INT NOT NULL AUTO_INCREMENT KEY,
time datetime NOT NULL
)ENGINE=InnoDB DEFAULT CHARSET=utf8; --检查数据库是否存在这个存储过程,存在则删除
drop PROCEDURE if exists p_event_insert; --修改分隔符
delimiter // --创建存储过程
CREATE PROCEDURE p_event_insert()
BEGIN
INSERT INTO eventtable(time) VALUES(now());
END
// --改回分隔符
delimiter ; --检查表中是否有定时器
drop event if exists test_event; --创建定时器
create event test_event
on schedule every 1 second
on completion preserve disable
do call p_event_insert(); --开启定时器
alter event test_event on completion preserve enable; --关闭定时器
alter event test_event on completion preserve disable;

创建定时器总结测试

  四、定时器总结  

      我们这节主要讲解了对于mysql当中的定时维护,那么这个当中的定时维护主要运用了我们当中的定时器,我们的这个定时器它可以去执行一段固定的代码,

        我们开启的这个命令就是通过全局变量来设置,把它的这个变量设置为1,相当于就是把它开启了,开启之后我们再去创建这个定时器,

        创建这个定时器这个语法create event test_event后面加定时器的名字,

        然后这里面就是固定的写法on schedule every 1 second这是需要执行的任务,这里是每隔1秒,

        on completion preserve disable这段代码表示如果我现在把这个定时器停掉了,实际上可以下次再启用它,

        do call test_proce();这个代表这个存储器需要执行的代码,这里面就是我们调的存储过程。

												

MYSQL进阶学习笔记十七:MySQL定期维护!(视频序号:进阶_36)的更多相关文章

  1. MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  2. MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  3. MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  4. Mysql数据库学习笔记之数据库索引(index)

    什么是索引: SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间. 聚集索引:该索引中键值的逻辑顺序决定了表中相应行的物 ...

  5. SQLMAP学习笔记2 Mysql数据库注入

    SQLMAP学习笔记2 Mysql数据库注入 注入流程 (如果网站需要登录,就要用到cookie信息,通过F12开发者工具获取cookie信息) sqlmap -u "URL" - ...

  6. ref:学习笔记 UpdateXml() MYSQL显错注入

    ref:https://www.cnblogs.com/MiWhite/p/6228491.html 学习笔记 UpdateXml() MYSQL显错注入 在学习之前,需要先了解 UpdateXml( ...

  7. MYSQL数据库学习笔记1

      MYSQL数据库学习笔记1 数据库概念 关系数据库 常见数据库软件 SQL SQL的概念 SQL语言分类 数据库操作 创建数据库 查看数据库的定义 删除数据库 修改数据库 创建表 数据类型 约束 ...

  8. 基于【 MySql 】二 || mysql详细学习笔记

    mysql重点学习笔记 /* Windows服务 */ -- 启动MySQL net start mysql -- 创建Windows服务 sc create mysql binPath= mysql ...

  9. (1.3)学习笔记之mysql体系结构(C/S整体架构、内存结构、物理存储结构、逻辑结构)

    目录 1.学习笔记之mysql体系结构(C/S架构) 2.mysql整体架构 3.存储引擎 4.sql语句处理--SQL层(内存层) 5.服务器内存结构 6.mysql如何使用磁盘空间 7.mysql ...

随机推荐

  1. CDOJ 3 BiliBili, ACFun… And More! 模拟

    原题链接:http://acm.uestc.edu.cn/#/problem/show/3 题意: 有个人在看B站视频时有个习惯,就是每当卡住的时候,他总再次从头开始看.另外,他在看视频时会先等待T的 ...

  2. UVA - 10615 Rooks

    建一下模,把行和列看成二分图的点,把车看成是二分图中的边,这样就变成了上一个博客的问题. 我们每次新加一条边,就把它加入一条 这条边两端点最小没有出现的颜色  交替出现的路径中去. #include& ...

  3. Android-Service基本用法、AIDL、Binder连接池详解

    本文介绍Service与Activity之间的通信,文章包含以下内容: 一.Service基本用法 二.通过AIDL实现Service与Activity跨进程通信 三.Binder连接池 四.使用Me ...

  4. mac下 JMeter 4.0 进行多用户接口压力测试

    1.最近在做公司的内部系统,需要进行多用户压力测试,于是上网在官网下载了Jmeter 压缩包,并放在指定的目录解压,打开解压后文件夹到bin目录下: 执行sh jmeter  Jmeter就启动起来了 ...

  5. ios 联网 在mac机器上进行抓包

    Remote Virtual Interface在使用Mac抓取iPhone数据包中介绍了两种方式在Mac电脑上抓取iPhone上的数据包,一是使用Mac的网络共享功能将Mac的网络通过WiFi共享给 ...

  6. Ubuntu -- 下如何查看CPU信息, 包括位数和多核信息

    from: http://hi.baidu.com/sdusoul/blog/item/76f349508f74fb6e843524eb.html 查看当前操作系统内核信息# uname -a Lin ...

  7. Android-->状态栏高度,导航栏高度,Window高度,DecorView高度,heightPixels

    1:DecorView的高度 DecorView的高度代表的是: 整个装饰窗口的高度, 这个高度包括:状态烂的高度和导航栏的高度.(状态栏和导航栏通常叫做装饰窗口, 而ActionBar不属于装饰窗口 ...

  8. iOS设计模式 - (2)UML类间关系精解

    在正式讲设计模式之前, 介绍一下UML类图之间的关系还是非常有必要的, 由于一些教程, 书籍, 包含我之后的文章, 都会大量使用类图, 去描写叙述各个类之间的关系.这是一种非常直观, 简约的方式. 当 ...

  9. git学习(4)---工作流

    一.目的 前三章介绍了git工具本身的操作,主要包含本地仓库操作和远程库操作两部分内容.接下来,我们将介绍怎样使用git进行项目开发,也叫做git工作流. git工作流分为三种模式:共享远程库模式.独 ...

  10. Linux系统目录数和文件数限制

    对于系统管理员来说,了解系统的一些限制是非常有必要的,这样可以根据需要进行必要的参数配置和调整,进而实现更优的性能,对于系统设计人员甚至程序员来说,了解系统的一些限制,也会有助于设计更为合理的存储结构 ...