Java实现百万级数据量向MySQL批量插入

文章讨论了在大数据量背景下,从大数据表向MySQL同步数据的多种技术方案,包括MyBatis批量插入、JDBC批量插入并开启事务以及结合数据分批和多线程的方法。对比结果显示,原生JDBC在大数据量处理上更优,但需注意资源管理和数据分批。此外,文章还涉及了对23w数据表的统计问题,指出内存统计可能导致OOM,建议改用数据库统计以减少内存占用。

业务背景:

大数据向mysql表同步百万级数量,我们需要将大数据表里同步过来的数据分别向三张业务表做数据同步,最终将业务表的数据展示给前台进行相关业务操作。
数据量级
大数据表:700w数据量
三张业务表分别需要同步:23w、80w、680w

技术方案设计

针对批量插入选择方案:

  1. mybatis批量插入
  2. mybatis批量插入+数据分批
  3. 原生jdbc批量插入+开启事务
  4. 原生jdbc批量插入+开启事务+数据分批
  5. 原生jdbc批量插入+开启事务+数据分批+多线程

方案对比结果:

  1. mybatis批量插入 1k数据量级
  2. mybatis批量插入+数据分批 10k数据量级
  3. 原生jdbc批量插入+开启事务 10w数据量级
  4. 原生jdbc批量插入+开启事务+数据分批 100w数据量级
  5. 原生jdbc批量插入+开启事务+数据分批+多线程 1000w数据量级

方案对比参考资料:
Mybatis与JDBC批量插入MySQL数据库性能测试
JAVA向Mysql插入亿级别数据
Mybatis批量插入
Mybatis批量插入优化

<

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值