奇怪下面这个sql 执行到一半的时候 (alog有350万 , linux mysql5.0.45)
delete from alog where atime< subdate(curdate(), 1);
我cancel了 , 1 登录mysql show processlist ,发现这个delete的状态是 killed ,但要等半个小时才能消失,此时在线库什么都不能干;
如何快速让他消失 , (我用kill几次是势失败的)2 在线库,1小时后,看这个alog 这个表 发现记录一条没有丢, 好古怪。 按道理无论如何还是有的啦??? (这个delete 是否是 有回滚的功能 中途退出会自动回滚 ??)
是的回滚了
mysql的大表 不适合那个 delete这样的 sql 最好limit 100000 这样做 方便回退
否则出现问题真不好书
我是执行30分左右关闭 ,关闭也花了半小时 (这么长的时间也是innodb回滚的过程 所以时间很长)y原因找到现在新问题问楼上 :insert into a
select * from b (b表有300万) 这个插入速度 要远远快于delete 。为什么 (insert仅仅需哟 10多分 数据跟上面是一样 )??? (请问insert 能够回滚吗 ???)
20分 insert 能够回滚 。