手机号码,快捷登录
签到天数: 804 天
[LV.10]以坛为家III
2053
2111
72万
管理员
最近项目有个需求,把一张表中的数据根据一定条件增删改到另外一张表。按理说这是个很简单的SQL。可是在实际过程中却出现了超级长时间的执行过程。
后来经过排查发现是大数据量insert into xx select造成。
原因在于当insert into xx select数据量达到10万级别,同时又有Update和Delete操作表。容易造成锁表。
经过研究重构了SQL语句问题解决。具体解决方案如下:
1.update 和Delete操作当成一个事务处理
2.Insert into前先删除索引
3.将需要insert into的数据,拆分成不大于3000条/次去执行。
使用道具 举报
本版积分规则 发表回复 回帖后跳转到最后一页
|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )
GMT+8, 2024-11-24 18:11 , Processed in 3.147589 second(s), 30 queries .
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.