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中

目录
相关文章
资源块|带你读《5G空口特性与关键技术》之九
3GPP TS38.211 中对 Point A 进行了定义。需要说明的是,2018/6 版本的TS38.211-f20 中的定义在 2018/9 版本中没有变化,不过在2018/12 版本 TS38.211-f40 中,基于 RAN1#94b 会议的决议进行了修改,有关信息请参看 RAN1#94b会议报告以及提案 R1-1811817 和 R11810834。
12267 1
资源块|带你读《5G空口特性与关键技术》之九
|
存储 运维 Oracle
国产数据库:目前最火的五款国产数据介绍
随着互联网的高速发展,目前数据的存储越来越多,传统的数据库逐渐不能满足人们对海量数据、高效查询的需求,国产的数据库如雨后春笋一样,一个个冒了出来来解决我们高速科技发展的数据库瓶颈,今天就给大家聊一聊目前最火的五款国产数据库,大家一起来交流一下。
国产数据库:目前最火的五款国产数据介绍
|
easyexcel Java API
Apache POI与easyExcel:Excel文件导入导出的技术深度分析
Apache POI与easyExcel:Excel文件导入导出的技术深度分析
|
存储 easyexcel Java
SpringBoot+EasyExcel轻松实现300万数据快速导出!
本文介绍了在项目开发中使用Apache POI进行数据导入导出的常见问题及解决方案。首先比较了HSSFWorkbook、XSSFWorkbook和SXSSFWorkbook三种传统POI版本的优缺点,然后根据数据量大小推荐了合适的使用场景。接着重点介绍了如何使用EasyExcel处理超百万数据的导入导出,包括分批查询、分批写入Excel、分批插入数据库等技术细节。通过测试,300万数据的导出用时约2分15秒,导入用时约91秒,展示了高效的数据处理能力。最后总结了公司现有做法的不足,并提出了改进方向。
|
前端开发 easyexcel 关系型数据库
EasyExcel处理Mysql百万数据的导入导出案例,秒级效率,拿来即用!
【5月更文挑战第11天】EasyExcel处理Mysql百万数据的导入导出案例,秒级效率,拿来即用!
618 1
|
11月前
|
Java Android开发 开发者
探索移动应用开发:从理念到实践
在数字时代,移动应用已成为日常生活不可或缺的一部分。本文将引导读者了解移动应用开发的核心概念,包括设计原则、开发流程、以及操作系统的选择。我们将探讨如何将一个想法转化为实际可用的应用,涵盖从市场调研到用户界面设计的全过程。此外,文章还将介绍移动应用开发的技术栈,并分析不同移动操作系统的特性,帮助开发者选择适合自己项目的开发平台。最后,通过代码示例,我们将展示如何在实际操作中实现这些理论和策略。
|
easyexcel Java API
SpringBoot集成EasyExcel 3.x:高效实现Excel数据的优雅导入与导出
SpringBoot集成EasyExcel 3.x:高效实现Excel数据的优雅导入与导出
2467 1
|
JSON Java 数据格式
【微服务】SpringCloud之Feign远程调用
本文介绍了使用Feign作为HTTP客户端替代RestTemplate进行远程调用的优势及具体使用方法。Feign通过声明式接口简化了HTTP请求的发送,提高了代码的可读性和维护性。文章详细描述了Feign的搭建步骤,包括引入依赖、添加注解、编写FeignClient接口和调用代码,并提供了自定义配置的示例,如修改日志级别等。
791 1
|
机器学习/深度学习 人工智能 自动驾驶
深度学习之自适应控制器设计
人工智能基于深度学习的自适应控制器设计在自动化系统、机器人控制、工业制造、无人驾驶等领域中有着广泛应用。自适应控制器借助深度学习模型的强大特征提取和学习能力,能够在未知或动态变化的环境中对系统进行实时调节,从而提升系统的响应速度、稳定性和控制精度。
406 1
|
Ubuntu 安全 Linux
Linux必备|如何重置忘记的 Root 密码
Linux必备|如何重置忘记的 Root 密码
2230 7