
大家好,我是哪吒。
在开发中,我们经常会遇到这样的需求,将数据库中的图片导出到本地,再传给别人。
一、一般我会这样做:
- 通过接口或者定时任务的形式
- 读取Oracle或者MySQL数据库
- 通过FileOutputStream将Base64解密后的byte[]存储到本地
- 遍历本地文件夹,将图片通过FTP上传到第三方服务器

现场炸锅了!
实际的数据量非常大,据统计差不多有400G的图片需要导出。
现场人员的反馈是,已经跑了12个小时了,还在继续,不知道啥时候能导完。
停下来呢?之前的白导了,不停呢?不知道要等到啥时候才能导完。
这不行啊,速度太慢了,一个简单的任务,不能被这东西耗死吧?
@Value("${months}"
本文讲述了通过数据库索引、异步多线程和避免图片落地优化从数据库导出400G图片到FTP服务器的过程,将原本耗时12小时的任务缩短至15分钟。讨论了@Async的异步线程池配置和优化策略,包括自定义线程池和业务、代码优化。强调了并行编程和算法在性能提升中的作用。
订阅专栏 解锁全文
1596

被折叠的 条评论
为什么被折叠?



