在不损坏表的情况下,杀死OPTIMIZE表上的InnoDB查询安全吗?
MySQL文档说:
但是,终止
REPAIR TABLE或OPTIMIZE TABLE对MyISAM表的操作会导致表损坏并无法使用(读写失败),直到您再次优化或修复它(没有中断)。
但它并没有提到InnoDB。
发布于 2014-02-11 18:54:53
如果优化InnoDB表,它将为其创建一个新的索引结构,并将记录从旧表复制到新表。当复制完成后,它就会切换表。
如果您在此过程中终止优化,InnoDB将不得不回滚。
这是安全的,但可能需要很长时间回滚。
发布于 2021-10-25 08:55:34
在我的例子中,一个优化任务被mysql的杀死命令杀死了,但是杀死它并没有停止这个过程。所以有时候即使你杀了这个任务,它也会继续存在。
> show processlist;
| Id | User | Host | db | Command | Time | State | Info | Progress |
+-------+-------------+-----------+-----------------------+---------+------+--------------------------+------------------------------------------------------------------------------------------------------+----------+
| 1 | system user | | NULL | Daemon | NULL | InnoDB purge coordinator | NULL | 0.000 |
| 2 | system user | | NULL | Daemon | NULL | InnoDB purge worker | NULL | 0.000 |
| 3 | system user | | NULL | Daemon | NULL | InnoDB purge worker | NULL | 0.000 |
| 4 | system user | | NULL | Daemon | NULL | InnoDB purge worker | NULL | 0.000 |
| 5 | system user | | NULL | Daemon | NULL | InnoDB shutdown handler | NULL | 0.000 |
| 142 | admin | localhost | tsa | Sleep | 20 | | NULL | 0.000 |
| 5114 | admin | localhost | something_wp | Killed | 5419 | Parallel repair | OPTIMIZE TABLE `wp_options` 虽然它说它被杀了,但它仍然在程序列表中。
https://stackoverflow.com/questions/21697603
复制相似问题