搜索
首页数据库mysql教程mysql event事件调度器的图文代码详解

下面小编就为大家带来一篇老生常谈mysql event事件调度器(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

概述

MySQL也有自己的事件调度器,简单地可以理解为linux的crontab job,不过对于SQL应用来说,它的功能更齐全,也更易于维护。个人感觉如果数量创建太多的话,也可能影响DB性能,且不易调试

MySQL事件调度器的主要内容

总开关

参数event_scheduler为事件调度器的总开关,一般来说设置为ON或者OFF就好,不建议设置成disabled,如果设置为ON,show processlist可看到该线程

mysql event事件调度器的图文代码详解

创建,修改,查看等语法

关于如何创建,修改event这里不做叙述,创建语法如下,具体的含义可参考下面关于event信息表介绍。也可以参考官网文档链接,http://dev.mysql.com/doc/refman/5.6/en/create-event.html

mysql event事件调度器的图文代码详解

查看创建好的event,在进入当前db后,show create event xxx\G

mysql event事件调度器的图文代码详解


event的信息查询和含义

查看某个event的状态信息,可查看mysql.event或者information_schema.events,或者简单地切到当前DB后执行show events; 三者的内容基本一致,information_schema无法做了下数据复制,更改了下列名称和starts时间以便更好的阅读。这里已information_schema.events里的信息为例解释

mysql event事件调度器的图文代码详解

EVENT_CATALOG:一般都是def,不管

EVENT_SCHEMA:event所在的schema

EVENT_NAME:event的名称

DEFINER:event的定义者,和定义这个event时,默认selectcurrent_user()的结果一致,如果该user有super权限,可以指定为其他用户

TIME_ZONE:event使用的时区,默认是system,建议别做修改

EVENT_BODY:一般都是SQL,不用管

EVENT_DEFINITION:该event的内容,可以是具体的insert等SQL,也可以是一个调用存储过程的操作

EVENT_TYPE:这个参数比较重要,定义的时候指定,有两个值:RECURRING和ONE TIME,RECURRING表示只要符合条件就会重复执行,而ONE TIME只会调用一次

EXECUTE_AT: 针对one-time类型的event有效,如果是RECURRING类型的event一般为NULL,表示该event的预计执行时间

INTERVAL_VALUE:针对RECURRING类型的event有效,表示执行间隔长度

INTERVAL_FIELD:针对RECURRING类型的event有效,表示执行间隔的单位,一般是SECOND,DAY等值,可参考创建语法

SQL_MODE:当前event采用的SQL_MODE

STARTS:针对RECURRING类型的event有效,表示一个event从哪个时间点点开始执行,和one-time的EXECUTE_AT功能类似。为NULL表示一符合条件就开始执行

ENDS:针对RECURRING类型的event有效,表示一个event到了哪个时间点后不再执行,如果为NULL就是永不停止

STATUS:一般有三个值,ENABLED, DISABLED和 SLAVESIDE_DISABLED,其中ENABLED表示激活这个event,该event只要符合其他条件就会执行;DISABLED状态改event将不会执行,SLAVESIDE_DISABLED表示在从库上不执行该event。需要特别注意在从库上不要执行任何形式的event,因为如果主库执行一次,复制到从库后,从库再执行一次的话,那就数据不一致了,一般来说直接禁用掉从库上的总开关event_scheduler就行。

ON_COMPLETION:只有两种值,PRESERVE和NOT PRESERVE,PRESERVE

CREATED:event的创建时间

LAST_ALTERED:event最新一次被修改的时间

LAST_EXECUTED:event最近一次执行的时间,如果为NULL表示从未执行过

EVENT_COMMENT:event的注释信息

ORIGINATOR:当前event创建时的server-id,用于主从上的处理,比如SLAVESIDE_DISABLED

CHARACTER_SET_CLIENT:event创建时的客户端字符集,即character_set_client

COLLATION_CONNECTION:event创建时的连接字符校验规则,即collation_connection

DATABASE_COLLATION:event创建时的数据库字符集校验规则

EVENT的权限管理

1 设置event_scheduler系统变量,需要super_priv权限

2 创建,修改和删除event需要该user用户EVENT权限,该权限是schema级别的

3 对应于event的具体内容,需要对应的权限。比如event里有对某张表的insert操作,那么该user需要对该表的insert操作,不然LAST_EXECUTED一直会是NULL

EVENT的状态查询

通过以下命令查看DB启动以来的event的相关信息统计

mysql> showglobal status like '%event%';
+--------------------------+-------+
|Variable_name | Value |
+--------------------------+-------+
|Com_alter_event | 0 |
|Com_create_event | 2 |
|Com_drop_event | 2 |
|Com_show_binlog_events | 0 |
|Com_show_create_event | 191 |
|Com_show_events | 40 |
|Com_show_relaylog_events | 0 |
+--------------------------+-------+
7 rows in set(0.00 sec)

使用建议

1 如果主库已经执行过,从库上务必要保证event不会执行(除非故意在slave上创建的event)

2 创建,删除等操作严禁直接操作mysql.event表,而是通过create等正规语法实现,不然会导致元数据混乱,各种莫名其妙的问题随之产生,比如event不执行或者重复执行。这时一般只有重启DB才能解决 了。

3 创建的event涉及到海量数据变更的话,要做好充分测试,确保不影响现网服务

4 如果需要备份带有event的DB,mysqldump时需要加上--event参数

以上是mysql event事件调度器的图文代码详解的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
在MySQL中使用视图的局限性是什么?在MySQL中使用视图的局限性是什么?May 14, 2025 am 12:10 AM

mysqlviewshavelimitations:1)他们不使用Supportallsqloperations,限制DatamanipulationThroughViewSwithJoinSorsubqueries.2)他们canimpactperformance,尤其是withcomplexcomplexclexeriesorlargedatasets.3)

确保您的MySQL数据库:添加用户并授予特权确保您的MySQL数据库:添加用户并授予特权May 14, 2025 am 12:09 AM

porthusermanagementInmysqliscialforenhancingsEcurityAndsingsmenting效率databaseoperation.1)usecReateusertoAddusers,指定connectionsourcewith@'localhost'or@'%'。

哪些因素会影响我可以在MySQL中使用的触发器数量?哪些因素会影响我可以在MySQL中使用的触发器数量?May 14, 2025 am 12:08 AM

mysqldoes notimposeahardlimitontriggers,butacticalfactorsdeterminetheireffactective:1)serverConfiguration impactactStriggerGermanagement; 2)复杂的TriggerSincreaseSySystemsystem load; 3)largertablesslowtriggerperfermance; 4)highConconcConcrencerCancancancancanceTigrignecentign; 5); 5)

mysql:存储斑点安全吗?mysql:存储斑点安全吗?May 14, 2025 am 12:07 AM

Yes,it'ssafetostoreBLOBdatainMySQL,butconsiderthesefactors:1)StorageSpace:BLOBscanconsumesignificantspace,potentiallyincreasingcostsandslowingperformance.2)Performance:LargerrowsizesduetoBLOBsmayslowdownqueries.3)BackupandRecovery:Theseprocessescanbe

mySQL:通过PHP Web界面添加用户mySQL:通过PHP Web界面添加用户May 14, 2025 am 12:04 AM

通过PHP网页界面添加MySQL用户可以使用MySQLi扩展。步骤如下:1.连接MySQL数据库,使用MySQLi扩展。2.创建用户,使用CREATEUSER语句,并使用PASSWORD()函数加密密码。3.防止SQL注入,使用mysqli_real_escape_string()函数处理用户输入。4.为新用户分配权限,使用GRANT语句。

mysql:blob和其他无-SQL存储,有什么区别?mysql:blob和其他无-SQL存储,有什么区别?May 13, 2025 am 12:14 AM

mysql'sblobissuitableForStoringBinaryDataWithInareLationalDatabase,而alenosqloptionslikemongodb,redis和calablesolutionsoluntionsoluntionsoluntionsolundortionsolunsolunsstructureddata.blobobobsimplobissimplobisslowderperformandperformanceperformancewithlararengelitiate;

mySQL添加用户:语法,选项和安全性最佳实践mySQL添加用户:语法,选项和安全性最佳实践May 13, 2025 am 12:12 AM

toaddauserinmysql,使用:createUser'username'@'host'Indessify'password'; there'showtodoitsecurely:1)choosethehostcarecarefullytocon trolaccess.2)setResourcelimitswithoptionslikemax_queries_per_hour.3)usestrong,iniquepasswords.4)Enforcessl/tlsconnectionswith

MySQL:如何避免字符串数据类型常见错误?MySQL:如何避免字符串数据类型常见错误?May 13, 2025 am 12:09 AM

toAvoidCommonMistakeswithStringDatatatPesInMysQl,CloseStringTypenuances,chosethirtightType,andManageEngencodingAndCollat​​ionsEttingsefectery.1)usecharforfixed lengengters lengengtings,varchar forbariaible lengength,varchariable length,andtext/blobforlabforlargerdata.2 seterters seterters seterters seterters

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具