Mariadb(mysql)定时任务的使用


title: Mariadb(mysql)定时任务的使用
date: 2019-07-15 16:54:19
categories: 数据库
author: mrzhou
tags:

  • Mariadb
  • mysql
  • 定时任务

Mariadb(mysql)定时任务的使用

需求描述

随时系统数据量的增加,在原系统中本来使用的一个视图,发现越来越影响性能了,本来该视图只是临时使用的,结果一搜索代码,发现已经有很多地方使用到了,修改代码的工作量太大,并且该视图使用的数据对实时性要求并不高,于是将该视图的内容处理成表,查询速度一下就提供上去了。

查看是否开启了计划事件

SHOW VARIABLES LIKE 'event_scheduler';

临时开启与关闭

只需要将on改为off,把1改为0即可实现关闭。

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

计划事件语法

CREATE
    [DEFINER = user]
    EVENT
    [IF NOT EXISTS]
    event_name
    ON SCHEDULE schedule
    [ON COMPLETION [NOT] PRESERVE]
    [ENABLE | DISABLE | DISABLE ON SLAVE]
    [COMMENT 'string']
    DO event_body;

schedule:
    AT timestamp [+ INTERVAL interval] ...
  | EVERY interval
    [STARTS timestamp [+ INTERVAL interval] ...]
    [ENDS timestamp [+ INTERVAL interval] ...]

interval:
    quantity {YEAR | QUARTER | MONTH | DAY | HOUR | MINUTE |
              WEEK | SECOND | YEAR_MONTH | DAY_HOUR | DAY_MINUTE |
              DAY_SECOND | HOUR_MINUTE | HOUR_SECOND | MINUTE_SECOND}

使用样例

每天临晨1点执行指定存储过程,在该存储过程中删除原数据,再从之前的视图中将数据insert到指定表中。

CREATE EVENT if not exists event_update_data
on schedule EVERY 1 DAY STARTS '2019-07-16 00:01:00'
on completion preserve 
ENABLE
do call P_update_data();

视图数据到表示例

#直接用视图生成表,这样最简单,但有一样不好,没有索引和主键等。
drop table T1;
create table T1 select * from V1;

#另一种,先根据视图建好表,并建立索引等,再用insert into T1 select * from V1;
TRUNCATE T1;
insert into T1 select * from V1;

注意事项

由于这里涉及到执行时间问题,所以时区一定要确定,具体时区的配置请参看上一篇

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天看到一位朋友写的mysql笔记总结,觉得写的很详细很用心,这里转载一下,供大家参考下,也希望大家能关注他原文地...
    信仰与初衷阅读 4,768评论 0 30
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,494评论 0 9
  • Mysql 基础 SQL分类: DDL—数据定义语言(create,alter,drop)DML—数据操纵语言(s...
    零一间阅读 5,296评论 0 10
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,170评论 1 32
  • 教育方法论 该快的地方快,该慢的地方慢。以后讲同步练习册可以快,复习这儿可以慢。 影响你情绪状态的,可以惩罚,你是...
    三不主义阅读 126评论 0 0