面试官问百万数据excel导出功能如何实现?

2023-03-06 13:49:16 浏览数 (3)

文章目录

  • 背景
  • 实现
    • 1.异步处理
      • 1.1 使用job
      • 1.2 使用mq
    • 2.使用easyexcel
    • 4.多个sheet
    • 5.计算limit的起始位置
    • 6.文件上传到OSS
    • 7.通过WebSocket推送通知
    • 8.总条数可配置
    • 9.order by商品编号
    • 总结

背景

用户在UI界面上点击全部导出按钮,就能导出所有商品数据。

咋一看,这个需求挺简单的。

但如果我告诉你,导出的记录条数,可能有一百多万,甚至两百万呢? 这时你可能会倒吸一口气。因为你可能会面临如下问题:

  1. 如果同步导数据,接口很容易超时。
  2. 如果把所有数据一次性装载到内存,很容易引起OOM。
  3. 数据量太大sql语句必定很慢。
  4. 相同商品编号的数据要放到一起。
  5. 如果走异步࿰

0 人点赞