- 浏览: 1051803 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
wenson:
lzjzy520 写道 求 项目完整元代码已经够清楚了,看不懂 ...
使用Spring JavaMail发送邮件总结 -
lzjzy520:
求 项目完整元代码
使用Spring JavaMail发送邮件总结 -
xiejx618:
能提高多大的性能? 不能用数据来说话吧希望你能用jmeter做 ...
利用APR本地库提高Tomcat性能 -
mrwalter:
学习了,挺好用的,局域网内速度很快
ssh远程文件传输命令scp -
wcily123:
不错
ssh远程文件传输命令scp
一、前言
自MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务(例如:删除记录、对数据进行汇总等等),来取代原先只能由操作系统的计划任务来执行的工作。更值得 一提的是MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精 确到每分钟执行一次。对于一些对数据实时性要求比较高的应用(例如:股票、赔率、比分等)就非常适合。
事件调度器有时也可称为临时触发器(temporal triggers),因为事件调度器是基于特定时间周期触发来执行某些任务,而触发器(Triggers)是基于某个表所产生的事件触发的,区别也就在这里。
在使用这个功能之前必须确保event_scheduler已开启,可执行
SET GLOBAL event_scheduler = 1;
或
SET GLOBAL event_scheduler = ON;
来开启,也可以直接在启动命令加上“–event_scheduler=1”,例如:
mysqld ... --event_scheduler=1
要查看当前是否已开启事件调度器,可执行如下SQL:
SHOW VARIABLES LIKE 'event_scheduler';
或
SELECT @@event_scheduler;
或
SHOW PROCESSLIST;
二、创建事件(CREATE EVENT)
先来看一下它的语法:
CREATE EVENT [IF NOT EXISTS] event_name ON SCHEDULE schedule [ON COMPLETION [NOT] PRESERVE] [ENABLE | DISABLE] [COMMENT 'comment'] DO sql_statement; schedule: AT TIMESTAMP [+ INTERVAL INTERVAL] | EVERY INTERVAL [STARTS TIMESTAMP] [ENDS TIMESTAMP] 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) 首先来看一个简单的例子来演示每秒插入一条记录到数据表
USE test; CREATE TABLE aaa (timeline TIMESTAMP); CREATE EVENT e_test_insert ON SCHEDULE EVERY 1 SECOND DO INSERT INTO test.aaa VALUES (CURRENT_TIMESTAMP);
等待3秒钟后,再执行查询看看:
mysql> SELECT * FROM aaa; +---------------------+ | timeline | +---------------------+ | 2007-07-18 20:44:26 | | 2007-07-18 20:44:27 | | 2007-07-18 20:44:28 | +---------------------+
2) 5天后清空test表:
CREATE EVENT e_test ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 5 DAY DO TRUNCATE TABLE test.aaa;
3) 2007年7月20日12点整清空test表:
CREATE EVENT e_test ON SCHEDULE AT TIMESTAMP '2007-07-20 12:00:00' DO TRUNCATE TABLE test.aaa;
4) 每天定时清空test表:
CREATE EVENT e_test ON SCHEDULE EVERY 1 DAY DO TRUNCATE TABLE test.aaa;
5) 5天后开启每天定时清空test表:
CREATE EVENT e_test ON SCHEDULE EVERY 1 DAY STARTS CURRENT_TIMESTAMP + INTERVAL 5 DAY DO TRUNCATE TABLE test.aaa;
6) 每天定时清空test表,5天后停止执行:
CREATE EVENT e_test ON SCHEDULE EVERY 1 DAY ENDS CURRENT_TIMESTAMP + INTERVAL 5 DAY DO TRUNCATE TABLE test.aaa;
7) 5天后开启每天定时清空test表,一个月后停止执行:
CREATE EVENT e_test ON SCHEDULE EVERY 1 DAY STARTS CURRENT_TIMESTAMP + INTERVAL 5 DAY ENDS CURRENT_TIMESTAMP + INTERVAL 1 MONTH DO TRUNCATE TABLE test.aaa;
[ON COMPLETION [NOT] PRESERVE]可以设置这个事件是执行一次还是持久执行,默认为NOT PRESERVE。
8) 每天定时清空test表(只执行一次,任务完成后就终止该事件):
CREATE EVENT e_test ON SCHEDULE EVERY 1 DAY ON COMPLETION NOT PRESERVE DO TRUNCATE TABLE test.aaa;
[ENABLE | DISABLE]可是设置该事件创建后状态是否开启或关闭,默认为ENABLE。
[COMMENT 'comment']可以给该事件加上注释。
三、修改事件(ALTER EVENT)
ALTER EVENT event_name [ON SCHEDULE schedule] [RENAME TO new_event_name] [ON COMPLETION [NOT] PRESERVE] [COMMENT 'comment'] [ENABLE | DISABLE] [DO sql_statement]
1) 临时关闭事件
ALTER EVENT e_test DISABLE;
2) 开启事件
ALTER EVENT e_test ENABLE;
3) 将每天清空test表改为5天清空一次:
ALTER EVENT e_test ON SCHEDULE EVERY 5 DAY;
四、删除事件(DROP EVENT)
语法很简单,如下所示:
DROP EVENT [IF EXISTS] event_name
例如删除前面创建的e_test事件
DROP EVENT e_test;
当然前提是这个事件存在,否则会产生ERROR 1513 (HY000): Unknown event错误,因此最好加上IF EXISTS
DROP EVENT IF EXISTS e_test;
发表评论
-
mysql主从同步报错故障处理总结 [数据库技术]
2015-12-14 13:37 4557前言 在发生故障切换后,经常遇到的问题就是同步报错,数据 ... -
MySQL Replication 主从同步原理及配置
2014-11-07 11:35 3261MySQL的Replication是一种多个MySQL的数据 ... -
关于MySQL 查询表数据大小的总结
2014-09-18 18:14 5043一:关于mysql表数据大小 我们知道mysql存储数据文 ... -
MySQL使用Event定时执行任务
2013-11-07 10:56 7126一、基本概念 mysql5 ... -
MySQL grant 语法的详细解析(帐号权限管理)
2013-10-09 16:31 1437记录一下mysql grant的一些用法。MySQL数据库 ... -
MySQL函数不能创建的解决方法
2013-09-18 11:34 1236在使用MySQL数据库时,有时会遇到MySQL函数不能创建的 ... -
mysql里的SUBSTRING
2013-09-16 11:23 1300截取字符串 substring(str, pos) subst ... -
备忘:mysql备份的帐号权限
2012-01-13 04:55 1955mysql备份的帐号权限,只需要:show databases ... -
怎样用命令查看Mysql数据库大小?
2011-12-14 01:51 53461、进去指定schema 数据库(存放了其他的数据库的信息) ... -
解决InnoDB出现“the table is full”的问题
2011-12-09 02:40 1738最近数据库数据量及访问频率比较大的两个表出现了the tabl ... -
mysql从服务器出现的错误解決方法:Slave_SQL_Running: No(主-从)
2011-10-19 00:16 25451、出现错误提示、 Slave I/O: ... -
spring+atomikos+JTA多數據源配置
2011-05-06 22:54 2611spring+atomikos+JTA多數據源配置中,需要注意 ... -
设置mysql5的master-master同步复制机制
2011-03-29 04:05 1797Setting Up Master-Master Repl ... -
mysql innodb数据库的优化
2011-01-12 19:48 3156硬件概況: linux服务器 ... -
Mac OS X 中mysql的配置文件my.cnf的位置
2010-10-10 21:33 24139OS X 系统安装的mysql默认是不用my.cnf配置文件的 ... -
Mysql双机备份方案
2010-06-13 13:55 2880运行环境: 虚拟机安装的是CentOS5 Mysql版 ... -
监控sql执行性能的工具:jdbmonitor
2010-02-16 01:18 1927一个用来监控sql执行性能的工具:jdbmonitor ... -
使用mysqlsla分析mysql日志
2009-12-12 03:53 2694mysqlsla是hackmysql.com推出的一款My ... -
持久层的数据库锁控制
2009-12-05 09:51 4050网站最近并发访问量增多,log常一旦抛出以下异常: Caus ... -
在linux里定时备份mysql
2009-11-26 01:56 17961、导出远程mysql数据库到本地成为sql文件: file ...
相关推荐
这个"MySQL 5.5指导手册"是一个详尽的参考资料,适合数据库管理员、开发人员以及对MySQL感兴趣的初学者使用。 手册可能涵盖以下关键知识点: 1. **安装与配置**:手册会详细解释如何在不同的操作系统上安装MySQL ...
MySQL 数据库卸载手册 本文档将详细介绍如何彻底卸载 MySQL 数据库,包括停止 MySQL 服务、卸载 MySQL 安装程序、删除安装目录下的所有文件、删除隐藏目录中的 MySQL 目录和清理注册表等步骤。 停止 MySQL 服务 ...
这份手册详尽地涵盖了MySQL的安装、配置、使用、管理以及优化等方面的知识,旨在帮助用户深入理解并有效地操作MySQL。 1. **MySQL基础**: - 数据库概念:MySQL是一个开源的关系型数据库管理系统,采用SQL(结构化...
以下是一份详细的MySQL卸载手册,旨在帮助用户安全地卸载MySQL并清除所有相关组件。 首先,卸载MySQL的正确步骤是从操作系统中停止MySQL服务。这通常可以通过服务管理工具或命令行完成。在Windows系统中,你可以按...
这些项通常位于HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Application/MySQL、HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services/Eventlog/Application/MySQL以及HKEY_LOCAL_MACHINE/SYSTEM/...
### MySQL LVS+Keepalived+MHA 高可用群集应用部署操作手册知识点解析 #### MHA 架构介绍与工作原理 - **MHA(Master High Availability)概述** - MHA 是一套用于MySQL高可用环境下的故障切换和主从提升方案,由...
3. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL 请注意,修改注册表有风险,如果不小心删除了其他非MySQL的键值,可能会导致系统不稳定。因此,建议在进行此操作前备份...
- 使用MySQL 5.5的半同步复制可以大大降低数据丢失的风险。MHA可以与半同步复制结合使用。如果仅有一个从服务器已经接收到最新的二进制日志,MHA可以将这些最新的日志应用于其他所有从服务器上,以保持数据一致性。 ...
根据提供的文件信息,我们可以归纳出一系列重要的IT知识点,主要聚焦于MySQL 5.1版本的特性和使用指南。以下是对这些知识点的详细说明: ### 一、MySQL 5.1 概览 #### 1.1 关于MySQL 5.1 MySQL 5.1是一款由MySQL ...
3. **开启事件**: 如果需要使用定时任务(事件调度器),在配置文件中找到`event_scheduler`,将其值设置为`ON`。 4. **设置用户**: 用户管理包括创建新用户、分配权限等,可以通过`CREATE USER`和`GRANT`等SQL语句...
MySql手册中将event.txt导入数据库中的问题
6. 事件调度器(Event Scheduler):允许设置定期执行的任务,如备份或数据清理。 【CSS3.3】 CSS(Cascading Style Sheets)3.3是CSS的最新版本,带来了丰富的样式控制和布局能力: 1. 选择器增强:新增了伪元素...
代码如下:ERROR 1577 (HY000): Cannot proceed because system tables used by Event Scheduler were found damaged at server start。 查看手册(5.4. mysql_fix_privilege_tables:升级MySQL系统表),一些MySQL...
8. **与其他技术集成**:Apache常与PHP、Perl、Python等脚本语言配合使用,手册会说明如何配置这些集成,以及与数据库(如MySQL)的连接。 9. **故障排除与最佳实践**:手册通常包含丰富的故障排除指南和最佳实践...
本篇文章详细介绍了 MySQL 5.7 基于组复制(MySQL Group Replication)的配置说明,实为线上操作手册,在此分享,希望能帮助到有用到的朋友~ MySQL 组复制(MySQL Group Replication)是 MySQL 官方于 2016 年 12 月...
本参考手册针对Qt5.10版本,详细介绍了如何使用Qt进行图形用户界面(GUI)开发。 **Qt5.15.2更新** 尽管标题中提到的是Qt5.10,但值得注意的是,Qt5.15.2是Qt5系列的一个后续更新,引入了更多的功能和修复了大量的...
Activiti 中文手册知识点总结 Activiti 是一个基于 BPMN 2.0 的工作流引擎,提供了强大的流程管理和自动化功能。本文档将对 Activiti 的主要特性和使用方法进行详细介绍。 Activiti 简介 Activiti 是一个开源的...