当前是连接的 oracle 数据库,在默认配置下,查询 1000 条数据的速度达到 3 秒。在修改配置 fetch-size 之后查询时间缩短到 0.3 秒左右。
mybatis-plus:
configuration:
default-fetch-size: 512
然后发现在调用 saveOrUpdateBatch 方法的时候,使用默认 batchSize=1000,批量操作 1000 条数据的耗时 20 秒到 30 秒,这个时间有点不能容忍了。
@Transactional(
rollbackFor = {Exception.class}
)
default boolean saveOrUpdateBatch(Collection<T> entityList) {
return this.saveOrUpdateBatch(entityList, 1000);
}
希望大佬告知 saveOrUpdateBatch 方法如何提升操作速度。
Oracle
Mybatis-Plus
同问! saveBatch()也是一样,很慢
测试发现 saveBatch 20 条比 10 条明显快, 但 80 条的耗时差不多是20条的4倍,往后增加批处理的条数,耗时也线性增长。
所以怀疑是 save 的缓存区默认设置太小了
同求
没感觉多慢额。。。300毫秒左右。
用<foreach>标签批量插入啊
我也遇到了 具体是怎么回事呢 一千多条数据 要20秒
JDBC连接URL字符串中需要新增一个参数:rewriteBatchedStatements=true