Bad*_*sie 9 mysql performance mysql-event mysql-8.0
我注意到服务器上有一个进程已经运行了超过12天,我认为这与上次重新启动MySQL的时间一致。
mysql> SHOW FULL PROCESSLIST;
+---------+-----------------+-----------+------+---------+---------+------------------------+-----------------------+
| Id | User | Host | db | Command | Time | State | Info |
+---------+-----------------+-----------+------+---------+---------+------------------------+-----------------------+
| 5 | event_scheduler | localhost | NULL | Daemon | 1098372 | Waiting on empty queue | NULL |
| 1774483 | root | localhost | NULL | Query | 0 | starting | SHOW FULL PROCESSLIST |
+---------+-----------------+-----------+------+---------+---------+------------------------+-----------------------+
2 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
没有事件,我也没有尝试创建任何事件。
mysql> SELECT * FROM information_schema.EVENTS;
Empty set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
这占用了我服务器高达 8% 的 CPU。
有没有办法确定这是什么,或者为什么要开始?每次我重新启动 MySQL 时都会尝试运行它吗?如果是这样,它在“等待”什么?我是否需要调整我的配置来防止这种情况发生?
MySQL 8.0.21
IGG*_*GGt 11
顾名思义,event_Scheduler 是一种安排事件(在本例中为查询)在给定时间在 MySQL 中运行的方法。它只是等待事件触发它并告诉它做某事。正如你所看到的,你还没有设置任何事件,所以它会等待很长时间。
它默认启用,但可以通过运行以下命令禁用:
SET @@global.event_scheduler = 0;
您还想添加:
event_scheduler = OFF
到您的 my.cnf 文件以防止它在重新启动后启动。