背景
新旧项目数据迁移,注意点:避免OOM以及低性能导致的耗时增加。
技术选型
PS:单个excel,单sheet页 是104W条,256列,上限32000个字节傻瓜式换算是1G左右单个文件
文件往往会是大文件:选择easyexcel,(相较于POI对于内存占用较少,easyexcel采用的是逐行读取)
(链接:
专家答疑1:https://easyexcel.opensource.alibaba.com/expert/question-history-14984
)
为了提高效率,可以手工将大数据打断复制分散到多个sheet页多,就可以使用多线程来进行读取,因此采用ExecutorService。
批量写入:选择mybatis/mybatils-plus均可。
具体实现
依赖
<dependencies>
<!-- EasyExcel -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>最新的版本号</version></dependency>
<!-- 数据库连接和线程池 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-ipa</artifactId>
</dependency>
</dependencies>