由于小编这边遇到业务中有张表有几千万的数据,然后由于业务场景,经常要执行10w条左右的更新sql,然后发现使用常用的update in() sql去执行的时候很慢,经常会造成服务的超时,为了解决这个问题小编研究发现了两种比较好点的方式:
1.采用分批次插入的方式,例如可以每次插入1000条
2.采用新的sql写法,常用的update table set ..... where id in (........)是不走索引的,所以我们可以人为的给它制造一个索引,然后新的写法就是 update table set ..... inner join (select id from table where id in (........) ) as temp on table.id=temp.id;可以提升很大的效率
05-17
1430
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
12-20
1367
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
02-22
236
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)