mysql怎么查看事件 mysql查看事件状态

如何查看mysql定时器的事件mysql如何查看定时器有没有执行
1.查看是否开启evevt与开启evevt 。
1.1、MySQL evevt功能默认是关闭的,可以使用下面的语句来看evevt的状态,如果是OFF或者0,表示是关闭的 。
show VARIABLES LIKE '%sche%';
1.2、开启evevt功能
SET GLOBAL event_scheduler = 1;
2.创建定时器的过程
2.1、创建测试表test
drop table if exists test;
create table test
(
id int(11) not null auto_increment primary key,
time datetime not null
) engine=innodb default charset=utf8;
2.2、创建evevt要调用的存储过程test_proce
delimiter //
drop procedure if exists test_proce//
create procedure test_proce()
begin
insert into test(time) values(now());
end//
delimiter ;
2.3、开启evevt(要使定时起作用,MySQL的常量GLOBAL event_scheduler必须为on或者是1)
执行show variables like 'event_scheduler';查看evevt是否开启;
若没开启执行set global event_scheduler='on';
2.4、创建事件test_event(其作用:每隔一秒自动调用test_proce()存储过程)
drop event if exists test_event;
create event test_event
on schedule every 1 second
on completion preserve disable
do call test_proce();
2.5、开启事件test_event
如何查看mysql数据库操作记录日志?有时候我们会不小心对一个大表进行了 update , 比如说写错了 where 条件......
此时,如果 kill 掉 update 线程 , 那回滚 undo log 需要不少时间 。如果放置不管,也不知道 update 会持续多久 。
那我们能知道 update 的进度么?
实验
我们先创建一个测试数据库:
快速创建一些数据:
连续执行同样的 SQL 数次,就可以快速构造千万级别的数据:
查看一下总的行数:
我们来释放一个大的 update:
然后另起一个 session,观察 performance_schema 中的信息:
可以看到,performance_schema 会列出当前 SQL 从引擎获取的行数 。
等 SQL 结束后,我们看一下 update 从引擎总共获取了多少行:
可以看到该 update 从引擎总共获取的行数是表大小的两倍 , 那我们可以估算:update 的进度 = (rows_examined) / (2 * 表行数)
??小贴士
information_schema.tables 中,提供了对表行数的估算,比起使用 select count(1) 的成本低很多,几乎可以忽略不计 。
那么是不是所有的 update,从引擎中获取的行数都会是表大小的两倍呢?这个还是要分情况讨论的 , 上面的 SQL 更新了主键,如果只更新内容而不更新主键呢?我们来试验一下:
等待 update 结束 , 查看 row_examined,发现其刚好是表大?。?
【mysql怎么查看事件 mysql查看事件状态】那我们怎么准确的这个倍数呢?
一种方法是靠经验:update 语句的 where 中会扫描多少行 , 是否修改主键 , 是否修改唯一键,以这些条件来估算系数 。
另一种方法就是在同样结构的较小的表上试验一下,获取倍数 。
这样,我们就能准确估算一个大型 update 的进度了 。
如何查看mysql event查看Events:
mysql show events\G
mysql show full events\G
mysql SELECT * FROM mysql.event;
mysql SELECT * FROM information_schema.events;
查看Events是否开启:
mysql select @@event_scheduler;
mysql show variables like 'event_scheduler';
开启Events方法:
mysql set GLOBAL event_scheduler=ON;

mysql set GLOBAL event_scheduler=1;
mysql怎么查看事件的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于mysql查看事件状态、mysql怎么查看事件的信息别忘了在本站进行查找喔 。

    推荐阅读