首页 > 编程语言 >Java百万数据导出Excel性能优化[读(并发)写分离/流式查询]

Java百万数据导出Excel性能优化[读(并发)写分离/流式查询]

时间:2025-01-17 11:33:14浏览次数:3  
标签:Java 导出 Excel 流式 查询 限流 数据 CPU

参考:https://www.zhihu.com/tardis/bd/art/533753443?source_id=1001  Java百万数据导出Excel性能优化[读(并发)写分离/流式查询]


结果测试:104万数据,导出excel用时由59秒优化到19秒


问题列表:
1、导出过程中会较多占用CPU、内存、磁盘,需全局对Excel导出限流,防止同时对大量数据进行导出,导致内存、磁盘、CPU使用率过高等问题。
2、导出时直接向HttpServletResponse写入的方式,在数据量比较大,耗时较久的情况下,用户体验并不是很好且容易超时,可考虑做导出下载中心功能(优势:限流、导出历史记录、进度条、可中断任务等)。
3、分页查询如果使用了非唯一字段排序,可能会出现数据重复的问题:MySQL查询时,ORDER BY 后面根据时间(TIMESTAMP)排序并做翻页(LIMIT)处理经常出现顺序紊乱和导致前后页的数据重复问题调查及解决。

标签:Java,导出,Excel,流式,查询,限流,数据,CPU
From: https://blog.csdn.net/qq_40882304/article/details/134120924

相关文章

  • JAVA开源免费项目 基于Vue和SpringBoot的城镇保障性住房管理系统(附源码)
    本文项目编号T122,文末自助获取源码\color{red}{T122,文末自助获取源码}......
  • JAVA开源免费项目 基于Vue和SpringBoot的多维分类的知识管理系统(附源码)
    本文项目编号T121,文末自助获取源码\color{red}{T121,文末自助获取源码}......
  • Java基于SpringBoot+Vue的常见病中医食疗平台设计与实现
    所需该项目可以在最下面查看联系方式,为防止迷路可以收藏文章,以防后期找不到项目介绍Java基于SpringBoot+Vue的常见病中医食疗平台设计与实现系统实现截图技术栈介绍JDK版本:jdk1.8+编程语言:java框架支持:springboot数据库:mysql版本不限数据库工具:Navicat/......
  • Java基于SpringBoot+Vue的百草园化妆服务平台系统 微信小程序
    所需该项目可以在最下面查看联系方式,为防止迷路可以收藏文章,以防后期找不到项目介绍Java基于SpringBoot+Vue的百草园化妆服务平台系统的设计和实现系统实现截图技术栈介绍JDK版本:jdk1.8+编程语言:java框架支持:springboot数据库:mysql版本不限数据库工具......
  • PDF转换:从Word到Excel
    一、引言在数字化的浪潮中,PDF文件格式以其稳定性和兼容性成为了信息交流的宠儿。然而,当我们需要编辑这些PDF文件时,往往会遇到各种难题。今天,我要和大家分享的,是如何将PDF文件轻松转换成Word和Excel格式,让编辑变得轻而易举。二、技术分享首先,让我们揭开PDF转换技术的神秘......
  • pandas读取和写入excel表格
    读取excel表格pandas.read_excel()函数read_excel()函数用于读取Excel文件并将其转换为Pandas的DataFrame对象。这是处理Excel数据的基础。函数原型如下:pandas.read_excel(io, sheet_name=0, *, header=0, names=None, index_col=None, usecols=None, dtype=None, e......
  • Java初学者笔记-01、封装继承多态
    封装:封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。通过封装,可以将类的信息隐藏在类内部,只暴露对外的接口(如setter和getter方法),从而提高代码的安全性和可维护性。继承:继承是从已有的类中派生出新的类的过程。新的类(子类)能够吸收已有类(父类)的数据属性和行为,并且可以......
  • C# 获取excel某列单元值的特殊数值处理方式(根据单元数据格式编码获取小位数)
    当excel文件某列单元数值显示的值和实际的值不一致:1.某列某单元显示:38,实际值是38.43,只取显示的38的值。2.某列某单元显示:38.68,实际值是38.685,只取显示的38.68的值。注释:如果没有格式并且不是默认的常规格式,是文本格式时,读取什么值则返回什么值。以下是本人写的公共静态帮助类,可以......
  • JAVA基础
    java标题头生成快捷键PSVM:publicstaticvoidmain(String[]args)SOUT:System.out.print("helloword");ctrl+D;复制当前行到下一行cast表示转化alt+回车:显示错误信息ctrl+/:表示批量添加多行注释新建java程序project--src--右击--new--package--javaclass--输......
  • #java基础
    java标题头生成快捷键PSVM:publicstaticvoidmain(String[]args)SOUT:System.out.print("helloword");ctrl+D;复制当前行到下一行cast表示转化alt+回车:显示错误信息ctrl+/:表示批量添加多行注释新建java程序project--src--右击--new--package--javaclass--输......