easyexcel导入导出百万条数据思路分析

简介: easyexcel导入导出百万条数据思路分析

easyexcel导入导出百万条数据思路分析

导入万条数据

一条数据200个字 一个文字2字节byte 一条数据相当于400byte 大约等于0.5kb

一万条数据大概5000kb 相当于5M

导入模块的jvm内存设置为8G

  1. 导入进行限制,系统只支持同时有200个人同时进行导入操作,通过redis进行记录,操作结束后对redis中值进行减1,同时对当前在线导入的数据量进行限制,只允许同时导入 100万条数据,通过redis记录,新建一条导入数据保存到数据库,同时发送一条mq消息给websocket,例如导入任务开始,此时消息会展示在界面上

  2. 通过导入传递的参数然后通过反射的方式去找到校验类和保存类

  3. 读取数据通过线程池进行多线程操作校验,校验时记录错误数据,如果出现失败存在一个list中,跳出保存,走上传错误文件逻辑,将错误原因记录在文件中

  4. 校验成功后在一个事务中分批次保存数据 单次保存500条,保存后将已保存的数据clear,方便垃圾回收,保存出现错误后回滚事务

  5. 如果出现需要远程调用feign的情况 增加seata 做控制

  6. 简单保存则直接在excel中引入需要保存的service与mapper

导出百万条数据

机器为16核 按照io操作

  1. 导出通过线程池控制,导出任务都放在线程池中运行,核心线程数设置为16,最大线程数设置为25,队列大小设置为30,导出时先判断队列是否已经满了,满了则直接提示错误,没满则新建一条导出数据保存到数据库,同时发送一条mq消息给websocket,例如导出任务开始,此时消息会展示在界面上

  2. 通过导出传递的参数反射获取查询的类,然后通过循环分页去查询结果,默认每次查询100条,可以自定义查询条数,将查询进度实时展示在界面上

  3. 每次查询后将结果写入excel中

目录
相关文章
|
6月前
|
SQL 缓存 easyexcel
面试官问10W 行级别数据的 Excel 导入如何10秒处理
面试官问10W 行级别数据的 Excel 导入如何10秒处理
260 0
|
6月前
|
easyexcel Java 关系型数据库
厉害了!12秒将百万数据通过EasyExcel导入MySQL数据库中
【5月更文挑战第12天】厉害了!12秒将百万数据通过EasyExcel导入MySQL数据库中
231 1
|
6月前
|
SQL 存储 数据库
两个Python脚本轻松解决ETL工作:统计多个服务器下所有数据表信息
两个Python脚本轻松解决ETL工作:统计多个服务器下所有数据表信息
|
6月前
|
SQL 存储 数据库
两个Python脚本轻松解决ETL工作:统计多个服务器下所有数据表信息(1)
两个Python脚本轻松解决ETL工作:统计多个服务器下所有数据表信息(1)
|
数据挖掘 开发工具
Excle数据分析:按照筛选条件将表格分割成多个文件的VBA解决方案
Excle数据分析:按照筛选条件将表格分割成多个文件的VBA解决方案
151 0
|
SQL Java 关系型数据库
从系统报表页面导出20w条数据到本地只用了4秒,我是如何做到的
最近有个学弟找到我,跟我描述了以下场景: 他们公司内部管理系统上有很多报表,报表数据都有分页显示,浏览的时候速度还可以。但是每个报表在导出时间窗口稍微大一点的数据时,就异常缓慢,有时候多人一起导出时还会出现堆溢出。 他知道是因为数据全部加载到jvm内存导致的堆溢出。所以只能对时间窗口做了限制。以避免因导出过数据过大而引起的堆溢出。最终拍脑袋定下个限制为:导出的数据时间窗口不能超过1个月。
|
数据挖掘 大数据 索引
1_数据分析—数据载入、导出和探索
1_数据分析—数据载入、导出和探索
232 0
1_数据分析—数据载入、导出和探索
|
数据格式 索引 Python
6000字 “保姆级” 教程 | 讲述Pandas库的数据读取、数据获取、数据拼接、数据写出!(二)
6000字 “保姆级” 教程 | 讲述Pandas库的数据读取、数据获取、数据拼接、数据写出!(二)
6000字 “保姆级” 教程 | 讲述Pandas库的数据读取、数据获取、数据拼接、数据写出!(二)
|
JSON 数据挖掘 数据库
6000字 “保姆级” 教程 | 讲述Pandas库的数据读取、数据获取、数据拼接、数据写出!(一)
6000字 “保姆级” 教程 | 讲述Pandas库的数据读取、数据获取、数据拼接、数据写出!(一)
6000字 “保姆级” 教程 | 讲述Pandas库的数据读取、数据获取、数据拼接、数据写出!(一)
|
SQL 存储 缓存
10w行级别数据的Excel导入优化记录,优秀
10w行级别数据的Excel导入优化记录,优秀
489 0
10w行级别数据的Excel导入优化记录,优秀