前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java Excel百万数据快速插入数据库思路

Java Excel百万数据快速插入数据库思路

原创
作者头像
奇怪的Java
发布2024-03-17 20:40:05
2820
发布2024-03-17 20:40:05
举报
文章被收录于专栏:随心写Java

简介

对于这个问题,相信很多人应该在面试或者某些业务场景中都遇到过,本文章只提供一种思路,也算是小白常用的一种思路。

思路

  • 假设数据有100万。
  • 要将数据快速插入到数据库,首先得减少读取数据的时间开支。
  • 减少插入数据时,时间上的开支。
  • 数据量过大容易产生OOM
  • 思路一:单线程逐行解析,单线程逐行插入。
  • 思路二:单线程逐行解析,单线程批量插入。
  • 思路三:多线程解析,单线程批量插入。
  • 思路四:多线程解析,多线程批量插入。(推荐)

数据获取

对于百万级数据的获取,本人一般采用alibabat提供的easyexcel工具。

代码语言:xml
复制
<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>easyexcel</artifactId>
	<version>${easyexcel-version}</version>
	<optional>true</optional>
</dependency>
  1. 对于数据获取,最简单的方法就是直接读取,通过单线程的方式逐行解析,时间上的开销预计在10分钟左右(不推荐)
  2. 第二种方法便是采用多线程的方式(推荐),即利用线程池的方式去获取。

数据插入

建议使用MyBatis-Plus框架,其提供了数据库多行数据插入的方法,可减少IO,同时开启JDBC批量插入&rewriteBatchedStatements=true

  1. 对于数据插入比较简单的方法就是直接通过简单Sql逐条插入
  2. 采用多线程的方式分批插入,如果每一批1w数据的话,大概1分钟左右就能处理完。(推荐)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
    • 思路
      • 数据获取
  • 数据插入
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档