最近项目有个需求,把一张表中的数据根据一定条件增删改到另外一张表。按理说这是个很简单的SQL。可是在实际过程中却出现了超级长时间的执行过程。

后来经过排查发现是大数据量insert into xx select造成。

原因在于当insert into xx select数据量达到10万级别,同时又有Update和Delete操作表。容易造成锁表。

经过研究重构了SQL语句问题解决。具体解决方案如下:

1.update 和Delete操作当成一个事务处理

2.Insert into前先删除索引

3.将需要insert into的数据,拆分成不大于3000条/次去执行。

 

相关文章:

  • 2022-12-23
  • 2021-11-04
  • 2021-12-11
  • 2022-12-23
  • 2022-02-05
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-08-22
  • 2022-02-08
  • 2021-12-04
  • 2022-01-18
相关资源
相似解决方案