周梦康 发表于 2019-01-02 468 次浏览 标签 : Mysql

前几天偷懒在线上清除一个日志表,应该是定期清理的,但是发现一直没处理。
执行了一句

delete from xxx_table where id<100000000;

发现半天没反应,大概等了20分钟,最后给 kill 了,虽然执行了 kill,线程一直还在,处于 killed 状态。
最后发现表行数没有变化,但是,这种情况是不是已经产生了大量的 binlog,只不过最后 kill 的时候数据又回滚回去了。

最后采用的方式是循环分片删除的方式,但是即便如此,我发现线上两个从库的延时都达到了1个小时。

不知道如果没有之前的直接 delete 操作,后面的频繁循环删除大量数据,是否也会造成主从延时。

嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

评论列表