
1 siweipancc 2020 年 7 月 14 日 via iPhone _ 我们是按主体个数开线程 countdown 的。 |
2 skypyb 2020 年 7 月 14 日 via Android 异步。 点导出之后让用户去主动下载导出文件 |
3 micean 2020 年 7 月 14 日 瓶颈在数据库的话,开几个线程都没用 如果是 OLAP 的就半夜跑任务 如果是 OLTP 的就减少查询量 一定要混着用……改成新开一个窗口,js 控制伪进度,让用户等吧 |
4 ZehaiZhang 2020 年 7 月 14 日 之前都是半夜定时生成报表,早上他们再自己下 |
5 6666666666666666 OP @micean @ZehaiZhang 我就是凌晨定时生成的报表,只是查询报表不是查所有,是查询该账号下能查到的数据并导出,每个帐号挂多个角色,报表的每个行有个 type 然后 type in ('2','3'..该帐号下的角色),就是这样查报表的,所以每个帐号生成的数据都不一样的。 |
6 weizhen199 2020 年 7 月 14 日 赌五毛会更慢 |
7 buzailianxi 2020 年 7 月 14 日 不改不现实,取出所有 type 的数据 or 所有 type 的数据放 redis,思路就是预先准备数据集合,导出的时候直接取就可以。 |
8 yizmaoaa 2020 年 7 月 14 日 - - 你开多线程去 CountDownLautch 估计速度也是差不多。主数据源放内存里吧。只要你走数据库。导出大量数据必然是慢 |
9 starcraft 2020 年 7 月 14 日 via iPhone bug 不 bug 不知道,但就你提供这个方法,大概率是变慢,而不是在优化。 |
10 greatbody 2020 年 7 月 14 日 分析清楚报表的取数逻辑。在梳理清楚的基础上,进行 SQL 优化,能用存储过程的,用存储过程。减少和数据库的交互,提高数据库计算的效率。 |
11 xyooyx 2020 年 7 月 15 日 via iPhone 应该是异步而不是多线程,这种长阻塞的场景多线程会导致线程全部挂起 |