我们遇到了一些问题,DBA或开发人员会意外地做一些事情,
insert into `newtable`
select * from `verylargetable`
在运行此查询10分钟(或可能1小时!)后,我们收到alert ,指出有一个进程正在运行很长时间.问题是,回滚过程与原始问题一样糟糕.
这些通常用于分析工作负载,最好只是取消查询.即使插入了部分行,也比等待20分钟或更长时间才能回滚查询要好.
在InnoDB中,是否有一种方法可以自动提交每行,或者当查询中的大插入完成时,每X行自动提交,或者只是告诉MySQL,如果事情被取消,不要回滚所有东西?我知道这不是InnoDB的设计目的,但MyISAM基本上被弃用,这就是我们所拥有的.