当前位置: 首页 > news >正文

如果从mysql导出百万数据级的excel

如果从mysql导出百万数据级的excel,可能遇到的问题?

同步导数据,接口很容易超时。

如果把所有数据一次性装载到内存,很容易引起OOM。

数据量太大sql语句慢。

如果走异步,如何通知用户导出结果

如果excel文件太大,目标用户打不开怎么办

解决方案??

  1. java层面

    • 异步处理

      不需要立马返回结果的接口可以采用异步的方式让接口立刻返回结果,可以防止接口耗时过长导致tomcat线程池打满。

      调用接口,直接调用异步任务

    • 使用流式存储

      百万级别的数据,从数据库一次性查询出来,是一件非常耗时的工作。即使我们可以从数据库中一次性查询出所有数据,没出现连接超时问题,这么多的数据全部加载到应用服务的内存中,也有可能会导致应用服务出现OOM问题。

      使用easyexcel,或者流式存储的方式进行读取。easyexcel能大大减少占用内存的主要原因是:在解析Excel时没有将文件数据一次性全部加载到内存中,而是从磁盘上一行行读取数据,逐个解析。

    • 分成多个文件,防止条数太多,打不开的情况

      设置条数上线,让每个excel的表格达到一定数量,自动分成下一个文件。然后压缩包的方式返回

    • 多线程

  2. mysql层面

    • 优化索引

      针对报表中频繁查询的字段,添加适当的索引,从而加快数据的检索速度。特别是在 WHERE 和 ORDER BY 子句中使用的列上创建索引,这有效提升了查询效率。

    • 游标查询

      或者滚动翻页的方式?正在学习原理

      MySQL批量查询、数据同步、数据导出可以使用类似于分页查询的思路,但是鉴于LIMIT offset,size的效率太低,可以采用”滚动翻页”的实现方式 注意要用自增趋势的主键

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 记录一次内网dns解析失败的排查
  • 详解Spring MVC
  • 开源BaaS 平台介绍
  • STM32——SSD1306驱动的OLED(I2C)
  • go语言设置定时任务
  • 居住证申报系统小程序的设计
  • H7-TOOL混合脱机烧录以及1拖4不同的通道烧录不同的程序操作说明(2024-08-07)
  • 江协科技STM32学习笔记(第10章 SPI通信)
  • Redis主从哨兵模式
  • Web开发中的Cookie、Session与Token:一场身份认证之旅
  • 日期类代码实现-C++
  • windows关闭英语美式键盘
  • conda配置国内源
  • Python | Leetcode Python题解之第334题递增的三元子序列
  • c语言中比较特殊的输入函数
  • docker python 配置
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • javascript从右向左截取指定位数字符的3种方法
  • mysql 5.6 原生Online DDL解析
  • Netty源码解析1-Buffer
  • node-glob通配符
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • SQLServer插入数据
  • uva 10370 Above Average
  • Webpack 4 学习01(基础配置)
  • 复杂数据处理
  • 排序算法之--选择排序
  • 删除表内多余的重复数据
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 通过调用文摘列表API获取文摘
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​1:1公有云能力整体输出,腾讯云“七剑”下云端
  • ​Spring Boot 分片上传文件
  • ​埃文科技受邀出席2024 “数据要素×”生态大会​
  • ​必胜客礼品卡回收多少钱,回收平台哪家好
  • ​字​节​一​面​
  • # wps必须要登录激活才能使用吗?
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (一)springboot2.7.6集成activit5.23.0之集成引擎
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)jdk与jre的区别
  • . NET自动找可写目录
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .NET C# 操作Neo4j图数据库
  • .net 验证控件和javaScript的冲突问题
  • .Net 转战 Android 4.4 日常笔记(4)--按钮事件和国际化
  • .net(C#)中String.Format如何使用
  • .Net6 Api Swagger配置
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .net对接阿里云CSB服务
  • .NET关于 跳过SSL中遇到的问题