专栏名称: 鸭哥聊Java
回复关键字:666 ,领取免费简历模板,Java面试题,Java编程视频等。本号内容涵盖Java源码,JVM源码,Dubbo源码,Spring源码,Spring Cloud微服务架构,分布式高并发架构技术,MySQL性能调优等。
今天看啥  ›  专栏  ›  鸭哥聊Java

同事使用 insert into select 迁移数据,上线后被公司开除!

鸭哥聊Java  · 公众号  ·  · 2024-05-13 14:00
来源:https://juejin.cn/post/6931890118538199048血一般的教训,请慎用insert into select。同事应用之后,导致公司损失了近10w元,最终被公司开除。事情的起因公司的交易量比较大,使用的数据库是mysql,每天的增量差不多在百万左右,公司并没有分库分表,所以想维持这个表的性能只能考虑做数据迁移。同事李某接到了这个任务,于是他想出了这两个方案先通过程序查询出来,然后插入历史表,再删除原表使用insert into select让数据库IO来完成所有操作第一个方案使用的时候发现一次性全部加载,系统直接就OOM了,但是分批次做就过多io和时间长,于是选用了第二种方案,测试的时候没有任何问题,开开心心上线,然后被开除。到底发生了啥,我们复盘一下先来看第一个方案,先看伪代码// 1、查询对应需要迁移的数据List list = selectData();// 2、将数据插入历史表i ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照