当有业务需求需要一次性循环n条数据,插入或更新数据库时,如果单纯的循环,插入/更新,会消耗太多的数据库资源
一下是一种简单的解决方案
数据库的insert 是可以批量更新的,当有大量数据循环insert时,可以将数据先保留不执行插入命令,到最后一条时一次性插入,例如tp的addAll()方法;
数据库的update 如果使用case when 的话,也是可以批量更新的,本人在百度上找到了一个基于tp的saveAll()方法,用于更新数据
本文主要讲关于批量insert;
例:
生成一个订单
正常情况的语句为:
|
假设有一个用户,一次性将购物车的1000个商品结算成订单,生成1000个订单时;
|
大概意思就是这样了,批量更新实现比较麻烦一点,就不发了,以下是批量更新的sql执行语句
|
附带基于tp的saveAll()
|