当前位置: 首页 > news >正文

企业网站建设费用 珠海广州市天河区网站设计公司

企业网站建设费用 珠海,广州市天河区网站设计公司,爱汉中app客户端,模板建站哪家好文章目录 1.简介2.事件调度器3.创建事件4.查看事件5.修改事件6.删除事件参考文献 1.简介 MySQL 事件#xff08;Event#xff09;事件是根据时间表运行的任务#xff0c;类似于 Unix crontab 和 Windows 定时任务。 一个事件可调用一次#xff0c;也可周期性地启动。它由… 文章目录 1.简介2.事件调度器3.创建事件4.查看事件5.修改事件6.删除事件参考文献 1.简介 MySQL 事件Event事件是根据时间表运行的任务类似于 Unix crontab 和 Windows 定时任务。 一个事件可调用一次也可周期性地启动。它由一个特定的线程来管理也就是所谓的事件调度器Event Scheduler。MySQL 的事件调度器可以实现每秒钟执行一个任务这在一些对实时性要求较高的环境下非常实用。 事件和触发器类似都是在某些事情发生的时候启动。MySQL 事件有时候也称为“时间触发器”因为它们是基于特定时间点触发的程序。 MySQL 事件可以用于许多场景例如优化数据库表、归档数据、生成复杂查询报告、清理日志文件等。 MySQL 存储程序包括存储例程、触发器和事件存储对象包括存储程序和视图。 2.事件调度器 事件调度器负责管理和执行事件它本质上是一个特殊的线程。我们可以通过 SHOW PROCESSLIST 命令查看事件调度器线程的信息和状态 SHOW PROCESSLIST\G *************************** 1. row ***************************Id: 5User: event_schedulerHost: localhostdb: NULL Command: DaemonTime: 21State: Waiting on empty queueInfo: NULL *************************** 2. row ***************************Id: 8User: rootHost: localhost:59956db: NULL Command: QueryTime: 0State: startingInfo: show processlist 2 rows in set (0.00 sec)SHOW PROCESSLIST 命令返回一个结果集其中包括以下信息 Id 客户端连接的唯一标识符。 User 连接的数据库用户。 Host 连接的主机或IP地址。 db 正在访问的数据库如果有。 Command 客户端正在执行的SQL命令如SELECT、UPDATE、INSERT等。 Time 查询已经运行的时间以秒为单位。 State 查询的当前状态例如正在执行、锁定等。 Info 查询的详细信息包括SQL查询文本。如果 User 字段为 event_scheduler代表事件调度器线程如果没有显示该记录表示没有启动事件调度器。 我们也可以查看表 information_schema.processlist 查看事件调度器线程的信息和状态。 SELECT * FROM information_schema.processlist;MySQL 通过全局系统变量 event_scheduler 控制是否允许和启动事件调度器它有三种可能的取值 ON默认设置表示启用事件调度器线程负责事件的调度和执行。OFF关闭事件调度器线程SHOW PROCESSLIST 命令不再显示相关信息计划事件不再执行。DISABLED禁用事件调度器线程不但停止了调度器线程而且无法通过 ON 或者 OFF 设置它的状态。 使用 SHOW 命令可以查看当前的 event_scheduler 设置 SHOW GLOBAL VARIABLES LIKE event_scheduler; ------------------------ | Variable_name | Value | ------------------------ | event_scheduler | ON | ------------------------ 1 row in set, 1 warning (0.06 sec)只要状态不是 DISABLED就可以通过 SET 语句启动或者关闭事件调度器。 -- 启动事件调度器 SET GLOBAL event_scheduler ON; SET GLOBAL.event_scheduler 1;-- 关闭事件调度器 SET GLOBAL event_scheduler OFF; SET GLOBAL.event_scheduler 0;只有在启动服务的时候才能够将事件调度器设置为 DISABLED运行时无法从 ON 或者 OFF 设置为 DISABLED同样也无法在运行时从DISABLED 修改为其他状态。在启动服务时指定以下命令行参数可以禁用事件调度器 --event-schedulerDISABLED或者在 MySQL 配置文件中的 [mysqld] 部分增加以下配置项 event_schedulerDISABLED默认情况下我们不需要进行任何配置就可以使用 MySQL 计划事件功能。 3.创建事件 MySQL 提供了 CREATE EVENT 语句用于创建计划事件 CREATE[DEFINER user]EVENT[IF NOT EXISTS]event_nameON 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}其中event_name 是计划事件的名称ON SCHEDULE 用于指定事件的执行计划也就是执行的时间和频率COMMENT 用于为事件增加注释信息event_body 包含了事件执行的 SQL 语句可以是简单语句或者由 BEGIN … END 组成的复合语句甚至存储过程调用。 对于执行计划 scheduleAT timestamp 用于创建一次性执行的事件指定了该事件发生的具体时间。 CREATE TABLE t_event(id int auto_increment primary key, ts timestamp);CREATE EVENT event1 ON SCHEDULE AT CURRENT_TIMESTAMP INTERVAL 10 SECOND DO INSERT INTO t_event(ts) VALUES (CURRENT_TIMESTAMP);事件 event1 将会在创建的 10 秒之后插入一条记录到表 t_event 中随后查询该表可以看到相应的记录 SELECT * FROM t_event; --------------------------- | id | ts | --------------------------- | 1 | 2023-09-25 11:31:29 | --------------------------- 1 row in set (0.00 sec)默认情况下一次性事件在执行完成后自动删除。如果想要保留事件定义可以使用 ON COMPLETION PRESERVE 选项 CREATE EVENT event1 ON SCHEDULE AT CURRENT_TIMESTAMP INTERVAL 10 SECOND ON COMPLETION PRESERVE DO INSERT INTO t_event(ts) VALUES (CURRENT_TIMESTAMP);如果没有显式指定创建事件时默认使用 ON COMPLETION NOT PRESERVE 选项。 EVERY interval 子句可以用于创建一个重复执行的事件它指定了事件的执行频率和有效期限。 CREATE EVENT event2 ON SCHEDULE EVERY 5 MINUTE STARTS CURRENT_TIMESTAMP ENDS 2023-12-31 23:59:59 DO INSERT INTO t_event(ts) VALUES (CURRENT_TIMESTAMP);事件 event2 从创建时开始每 5 分钟执行一次。并通过 STARTS 和 ENDS 子句用于定义事件的有效期限省略时默认从事件创建时开始并且无限期执行。 默认情况下事件创建之后处于激活状态。我们也可以使用 DISABLE 选项创建一个被禁用的事件 CREATE EVENT [IF NOT EXISTS] event_nameON SCHEDULE schedule[ON COMPLETION [NOT] PRESERVE][ENABLE | DISABLE | DISABLE ON SLAVE][COMMENT string]DO event_body;使用 DISABLE 选项创建的事件不会被执行除非将状态修改为 ENABLE。DISABLE ON SLAVE是指在主备复制的数据库服务器中在备机上也创建该定时器但是不执行。 4.查看事件 使用 SHOW EVENTS 语句可以查看当前数据库中的计划事件 SHOW EVENTS[{FROM | IN} schema_name][LIKE pattern | WHERE expr]例如查询前文创建的两个事件 SHOW EVENTS\G *************************** 1. row ***************************Db: hrdbName: event1Definer: rootlocalhostTime zone: SYSTEMType: ONE TIMEExecute at: 2023-09-25 21:32:45Interval value: NULLInterval field: NULLStarts: NULLEnds: NULLStatus: DISABLEDOriginator: 1 character_set_client: utf8mb4 collation_connection: utf8mb4_0900_ai_ciDatabase Collation: utf8mb4_0900_ai_ci *************************** 2. row ***************************Db: hrdbName: event2Definer: rootlocalhostTime zone: SYSTEMType: RECURRINGExecute at: NULLInterval value: 5Interval field: MINUTEStarts: 2023-10-07 21:35:07Ends: 2023-12-31 23:59:59Status: ENABLEDOriginator: 1 character_set_client: utf8mb4 collation_connection: utf8mb4_0900_ai_ciDatabase Collation: utf8mb4_0900_ai_ci 2 rows in set (0.03 sec)另外MySQL 系统表 INFORMATION_SCHEMA.EVENTS 中存储了更加详细的事件信息。 也可以使用 SHOW CREATE EVENT 语句查看指定事件的定义。 SHOW CREATE EVENT event_name例如 SHOW CREATE EVENT event1\G *************************** 1. row ***************************Event: event1sql_mode: STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTIONtime_zone: SYSTEMCreate Event: CREATE DEFINERrootlocalhost EVENT event1 ON SCHEDULE AT 2020-10-07 21:32:45 ON COMPLETION PRESERVE DISABLE DO INSERT INTO t_event(ts) VALUES (CURRENT_TIMESTAMP) character_set_client: utf8mb4 collation_connection: utf8mb4_0900_ai_ciDatabase Collation: utf8mb4_0900_ai_ci 1 row in set (0.00 sec)5.修改事件 如果想要修改计划事件的属性和定义可以使用 ALTER EVENT 语句 ALTER[DEFINER user]EVENT event_name[ON SCHEDULE schedule][ON COMPLETION [NOT] PRESERVE][RENAME TO new_event_name][ENABLE | DISABLE | DISABLE ON SLAVE][COMMENT string][DO event_body]ALTER EVENT 语句支持的选项和 CREATE EVENT 语句相同另外它可以通过 RENAME TO 子句修改事件的名称。例如 ALTER EVENT event2 RENAME TO repeat_event COMMENT This is a repeat event.;6.删除事件 如果想要删除一个存在的计划事件可以使用 DROP EVENT 语句 DROP EVENT [IF EXISTS] event_name默认情况下已经过期的事件会自动删除除非设置了 ON COMPLETION PRESERVE 选项。 参考文献 25.4 Using the Event Scheduler 13.1.13 CREATE EVENT Statement 13.7.7.18 SHOW EVENTS Statement 13.7.7.7 SHOW CREATE EVENT Statement 13.1.3 ALTER EVENT Statement 13.1.25 DROP EVENT Statement 《MySQL 入门教程》第 34 篇 计划任务
http://www.yutouwan.com/news/155406/

相关文章:

  • 安徽中机诚建建设有限公司网站网站克隆 有后台登录
  • 校园网站建设意义竞价托管哪家专业
  • 做国际网站有补贴吗wordpress 建立数据库连接时出错
  • 下载建设银行官方网站下载班级网页html源代码
  • 免费网站代理怎么做网店
  • 网站框架设计wordpress4.7.1漏洞
  • 运城网站推广哪家好宣传片制作公司资质
  • 做平行进口的汽车网站西安营销网站
  • 做电脑网站用什么软件好用吗网站建设源码开发
  • h5网站模板下载百度公司的业务范围
  • 网盘做网站服务器个人域名可以做公司网站么
  • 广东手机网站建设app制作平台大全
  • 新做好的网站如何做seo做网站的广告语
  • 网站备案号查询企业网站推广属于付费
  • 网站建设跳转页面怎么弄小米新手机发布
  • 亚马逊外贸网站如何做移动端wordpress主题
  • 桂林微信网站设计做网站公司大连
  • 免费做调查问卷的网站做网站建设找哪家好
  • php能自己做网站吗优秀的网站设计分析
  • html手机网站开发后端如何制作wordpress模板下载
  • saas建站 cmswordpress用户名钩子
  • 网站的登记表是怎么做的嘉兴优化网站公司哪家好
  • 建设网站需要花费多少钱企业所得税政策最新2023
  • 北京做网站推广多少钱建设银行手机行网站
  • 网站建设的隐私条款网站模板上传打不开
  • 网站哪个公司做的比较好的国外网站设计师
  • 东莞市网络营销推广多少钱标题关键词优化报价
  • 徐州关键词排名优化上海seo博客
  • 商城网站备案流程电脑网站建设
  • 建设网站好难安防公司网站建设