百万级别数据批量插入 MySQL,哪种方式最快?

3种策略

    • 源码地址
    • Mybatis 轻量级框架插入-数据量500W
    • JDBC直接处理-数据量10W
      • JDBC开启自动提交
      • JDBC关闭自动提交
    • 采用JDBC批处理-数据量100W
      • 自动提交
      • 关闭自动提交
    • JDBC批处理-数据量100W
      • 自动提交
      • 关闭自动提交
    • 总结:

源码地址

源码

Mybatis 轻量级框架插入-数据量500W

用时:9.17m
百万级别数据批量插入 MySQL,哪种方式最快?_第1张图片

JDBC直接处理-数据量10W

JDBC开启自动提交

用时:13.18m 平均:41s/w
百万级别数据批量插入 MySQL,哪种方式最快?_第2张图片

JDBC关闭自动提交

用时:8.955s 平均:0.4s/w
百万级别数据批量插入 MySQL,哪种方式最快?_第3张图片

采用JDBC批处理-数据量100W

自动提交

用时:6.981s 平均:0.7s/w
百万级别数据批量插入 MySQL,哪种方式最快?_第4张图片

关闭自动提交

用时:6.880s 平均:0.7s/w
百万级别数据批量插入 MySQL,哪种方式最快?_第5张图片

JDBC批处理-数据量100W

自动提交

用时:34.329s 平均:2~6s/w
百万级别数据批量插入 MySQL,哪种方式最快?_第6张图片

关闭自动提交

用时:33.672s 平均:2~4s/w
百万级别数据批量插入 MySQL,哪种方式最快?_第7张图片

总结:

撇去是否开启自动提交事务:
用时:
Mybatis>JDBC直接处理>JDBC批处理
同等策略中:
JDBC直接处理自动提交>JDBC直接处理关闭自动提交
JDBC批处理-100w级别数据自动提交≈JDBC批处理-100w级别数据关闭自动提交,但是随着数据量的提升:
JDBC批处理-500w级别数据自动提交>JDBC批处理-500w级别数据关闭自动提交

你可能感兴趣的:(Mysql,mysql,百万数据批量插入,事务,mybatis,jdbc)