后台批量导出报表的时候,页面长时间转圈、等待超过3分钟的问题已经得到了解决。从技术上对报表查询链路进行了一次批量优化,在同样的数据量情况下,导出的等待时间稳定在40秒左右,整个耗时减少了80%左右。

之前导出报表的时候,系统存在重复查询、单条循环取数、未命中索引等问题,数据量稍大就会频繁卡顿,高峰期还会拖慢整个后台响应。本次调整没有增加硬件资源,主要是对查询语句本身进行优化:合并冗余子查询,把循环执行的单条查询统一改成批量查询,给筛选、排序字段添加联合索引,把导出任务改为异步队列,进度实时刷新,防止页面超时中断。
上线之后,运营侧日常导出千条级别的明细报表基本可以在40秒钟之内完成,大批量导出也不会占用后台主线程。之后还会继续对慢查询日志进行监控,对于复杂的报表进行进一步的拆分,防止一次查询扫描过多的数据。