论坛首页 Java企业应用论坛

java大数据量导出

浏览 19821 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (3) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-08-05  
最近有个需求,大概几百万的数据,通过前台条件查询,然后导出成excel,现在用分sheet实现,速度特别慢,客户不满意,不知道大家有没有好的方法
   发表时间:2011-08-05  
后台处理,出来完成后放在FTP服务器的指定目录,然后前台弹出对话框让客户FTP下载,几百万数据不算大,应该很容易搞定!
0 请登录后投票
   发表时间:2011-08-05  
guoapeng 写道
后台处理,出来完成后放在FTP服务器的指定目录,然后前台弹出对话框让客户FTP下载,几百万数据不算大,应该很容易搞定!

如果不能放FTP服务器怎么办呢
0 请登录后投票
   发表时间:2011-08-05  
几百万的数据量,你还想导出成xls格式,内存不溢出就不错了。
可以考虑导出成CSV格式,纯文本数据,性能也会好很多

第二招,可以将要导的数据分成多份,用多线程来导出成文件,这样CPU利用率高,然后先放在本地,最后压缩成zip再response客户端
0 请登录后投票
   发表时间:2011-08-05  
Rainbamboo 写道
几百万的数据量,你还想导出成xls格式,内存不溢出就不错了。
可以考虑导出成CSV格式,纯文本数据,性能也会好很多

第二招,可以将要导的数据分成多份,用多线程来导出成文件,这样CPU利用率高,然后先放在本地,最后压缩成zip再response客户端

哥 这个肯定是客户的需求呀

客户要有这种需求 很纠结的
0 请登录后投票
   发表时间:2011-08-06  
happinesss 写道
guoapeng 写道
后台处理,出来完成后放在FTP服务器的指定目录,然后前台弹出对话框让客户FTP下载,几百万数据不算大,应该很容易搞定!

如果不能放FTP服务器怎么办呢

那就写到文件系统,当客户再次点下载的时候,你把那个文件写到response里面。
这样就是需要自己去写代码,而且比较影响web server的性能!
0 请登录后投票
   发表时间:2011-08-06  
guoapeng 写道
happinesss 写道
guoapeng 写道
后台处理,出来完成后放在FTP服务器的指定目录,然后前台弹出对话框让客户FTP下载,几百万数据不算大,应该很容易搞定!

如果不能放FTP服务器怎么办呢

那就写到文件系统,当客户再次点下载的时候,你把那个文件写到response里面。
这样就是需要自己去写代码,而且比较影响web server的性能!

一般都是这样吧?
0 请登录后投票
   发表时间:2011-08-06  
化整为零。设定每个part的容量,查出totalcount,像分页程序一样多线程分part查询,导出多个excel文件,如果需要多标签整合再写一个程序弄成一个excel。用日志或者自己写,看哪个部分占用时间及其他资源多,可以用程序缓存,多线程,多文件等方式优化。
0 请登录后投票
   发表时间:2011-08-06   最后修改:2011-08-06
百万级的数据并不是很多,不过excel就难说,
如果先导出多个csv文本,再多标签导出excel应该会比较好点
0 请登录后投票
   发表时间:2011-08-06  
chengli742005 写道
最近有个需求,大概几百万的数据,通过前台条件查询,然后导出成excel,现在用分sheet实现,速度特别慢,客户不满意,不知道大家有没有好的方法

是什么数据库?如果是oracle使用sqlloader导出成csv不行吗?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics