问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mybatisplus的批量保存更新 executeBatch flushStatements

发布网友 发布时间:2024-08-20 06:48

我来回答

1个回答

热心网友 时间:2024-08-25 00:55

近期在处理mybatisplus的批量保存操作时,我发现其executeBatch和flushStatements的执行机制。首先,批量保存的起点是saveOrUpdateBatch方法,它默认使用一个固定的批量大小 DEFAULT_BATCH_SIZE = 1000。

这个方法会调用到 saveOrUpdateBatch(Collection entityList, int batchSize),对于每个实体list,它会开启一个事务。在executeBatch中,主要步骤是先通过id查询(Preparing: SELECT id by id),然后根据查询结果判断是保存(save)还是更新(update)。如果查询结果总数为1,说明是update操作,接着会执行update by id,参数通过lambda传递。

在executeBatch内部,会遍历实体列表,每批操作i个记录后,就会进行SQL事务提交,调用MybatisBatchExecutor的doFlushStatements。如果实体数量超过1000,就会分批提交。这种批量操作方式,如果需要搜索,应该根据特定关键字,而不是直接寻找saveOrUpdateBatch方法。

经过测试,我发现处理1000条数据的批量保存大约需要2.5秒,这说明事务处理会占用一定时间。因此,在实际使用时,需要注意这个时间成本,以优化性能。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
橙子冷藏能保存多久 橙子会过期吗 新鲜橙子如何保存更久 橙子保鲜剂对人体有害吗 粒上皇开口熟栗120g*5袋(共600g)-详细介绍 三皇王板栗介绍 品牌榜:2024年板栗十大品牌排行榜 投票结果公布【新】 为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 MybatisPlus自定义insertBatchSomeColumn实现真正批量插入 保安消防演练方案及流程 物业管理费用标准公共秩序维护及公共秩序 社区安全与消防实用工作手册目录 isis的组播地址 2017年通城一中录取分数线是多少? 咸安一中录取分数是多少? ...我晚上用妇康生物凝胶推注剂了第二天内裤有很多透明白的液体?求医... 用康妇凝胶后排出的东西是什么 痔疮肿了几天能好 妇康凝胶用后的症状 痔疮开刀几天能好 痔疮几天能好 痔疮一般几天能自己好 痔疮犯了一般几天就可以好 MINI N97 与 山寨MINI N97 的区别有哪些?》? 痔疮发炎一般几天能好 水天一线打一准确生肖 松下空调和SKG空调哪个好 SKG空调怎么样?性价比高吗 mybatis-plus保姆级入门教程,手把手教你轻松实现增删改查 Mybatis-Plus 新增获取自增列id 学会了MybatisPlus,代码开发效率提高了10倍! MybatisPlus中QueryWrapper用法详解 【MybatisPlus】条件构造器Wrapper、分页查询、自定义SQL、Service层... 我是卖家,退款协议达成等待买家退货是什么意思? 退货时间还未到是什么意思 知网查重跟维普差不多? 迷你ktv哪个最火 得物app鞋子防伪扣怎么取掉? 得物的防伪扣如何完整打开 闲鱼买家赢了,卖家拒收怎么办呢 在闲鱼上面买了假货,闲鱼法庭也判决卖家输,要求退货退款,但是卖家... 生育金从哪天算起 党政机关公文格式的标准是什么? 警车的外观制式需要符合哪些行业标准? csgo下载的录像在哪里删除_csgo下载的录像存储位置 我的第一套认读动物百科:海洋动物内容简介 有什么关于百科知识的书籍 动物大百科全书内容简介