场景描述项目中,需要迁移数据,数据之间存在外键关联,存在一对多的外键关系;因此,数据迁移后,需要更新对应的外键;迁移需要一次性完成,否则需要额外的工作量来修复外键关系(主要操作是BatchInsert、BatchUpdate)。问题显示需要迁移的数据量为1亿条。运行一段时间后,发现有3组数据迁移不成功,通过日志排查,发现Mybatis报错,超过了程序所能处理的最大量。通过查询发现最大数据量为12w。出现问题的原因是Mysql对语句的长度有限制,默认是4M(选择@@max_allowed_pa??cket)。经查阅项目数据库配置的最大包为16M,不足以支持10w级别数据量的处理,故报错后续。由于项目业务原因,该问题已通过其他方式解决。在以后的工作中,会遇到批处理数据的操作,也需要综合评估,避免数据量大带来的数据传输问题
