登录
首页 >  数据库 >  MySQL

Mybatis 批量操作 引发上限问题

来源:SegmentFault

时间:2023-01-21 13:16:26 367浏览 收藏

大家好,今天本人给大家带来文章《Mybatis 批量操作 引发上限问题》,文中内容主要涉及到MySQL、Java,如果你对数据库方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!

场景描述

项目中需求对数据进行迁移,数据之间存在外键关联关系,外键关系存在一对多;因此在数据迁移之后,需要将对应的外键更新;则迁移需要一次性完成,否则需要额外的工作量来修复外键关系(主要操作为BatchInsert、BatchUpdate)

问题暴露

该需求迁移数据量为亿级,运行一段时间后,发现有3组数据迁移不成功,通过日志排查,发现Mybatis报错,超过程序能处理的最大量,通过查询,发现最多一组数据量有12w

问题原因

Mysql 对语句的长度有限制,默认是 4M (select @@max_allowed_packet)
经查阅项目数据库配置的最大包为16M,并不足以支持10w级数据量的处理,故报错

image.png

后续跟进

由于项目业务原因,已通过其他手段解决此问题,在以后的工作中,遇到批量处理数据的操作,还需要全面评估以规避数据量带来的数据传输问题

本篇关于《Mybatis 批量操作 引发上限问题》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于数据库的相关知识,请关注golang学习网公众号!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表