导出报表过慢,一次性导出一百多万条数据,过慢如何解决

zb1513749907775 发布于 2019/06/29 09:47
阅读 2K+
收藏 0

一张大表,有几百万的数据,但是一次导出一百多万条,导致没有走索引,大概五分钟才能顺利导出,请问有什么解决办法、。

加载中
0
凯恩血蹄
凯恩血蹄

优化不了速度就优化体验嘛,点按钮,后台执行,执行完毕后发邮件给用户就是了

0
不喜欢暴力运动
不喜欢暴力运动
分页导出 导出功能在前端JS做 后端只负责返回数据 ,如果非要一次性 加机器吧兄dei
0
f
freezingsky

不管什么报表要展示的, 一百多万条数据吧. 那是给人看的.

至于涉及到数据量的大小, 可以考虑按维度, 对原有数据做加工, 定时去生成一些历史快照记录. 

查的时候 ,从已经生成的快照里进行汇总, 就可以从百万级变成可能只有几百条记录了.

本质上, 是把原有的计算时间, 拆分到每个粒度单位里面去.

0
玻璃门
玻璃门
一次性全查本身业务就有问题,分页导出是最常见解决办法
0
太黑_thj
太黑_thj

dump  你值得拥有

0
tianaiyouq
tianaiyouq

@不喜欢暴力运动  他说的是导出时间慢,你走分页速度并不会比原来的快, 只不过你要是代码导出,可以避免oom,对速度并不会起到什么效果吧.....

0
tianaiyouq
tianaiyouq

并且大数据量导出也不是很推荐使用分页,因为分页到后面数据量大的话是会越来越慢的, 

可以参考 阿里开源的DataX 的导出方式(很简单,更改下jdbc驱动的fetchSize就能完美解决oom)

0
魔力猫
魔力猫

100W条,走索引是不可能的,除非是全索引查询。你走索引没准能再慢2-3倍。

这种情况是你要超大量的数据,进行报表运算。只能说想办法把运算结果提前计算好,放在数据库里面等下载。而且哪怕是这样,如果下载数据量太大,一样快不起来。

杰克伦敦尘
杰克伦敦尘
该评论暂时无法显示,详情咨询 QQ 群:912889742
0
尚浩宇
尚浩宇
该评论暂时无法显示,详情咨询 QQ 群:912889742
0
杰克伦敦尘
杰克伦敦尘

大表查询,要用时间范围查询,在对应的时间字段上加索引。

导出数据,建议用 .csv 文件格式。

以下仅供参考:

单个表上亿行数据的主键、索引设计,及分页查询
https://my.oschina.net/jacklondon/blog/5220057

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部