报表连 MongoDB,数据量大报表慢,怎么做分页?「终于解决」

报表连 MongoDB,数据量大报表慢,怎么做分页?「终于解决」MongoDB 没有关系数据库之类的分页机制,要实现分页查询得硬编码,可以通过实现 Pageable 接口来自定义分页类,具体网上有很多介绍。 硬编码的缺点是实现太复杂了,也不好维护,对报表开发人员…

报表连 MongoDB,数据量大报表慢,怎么做分页?

MongoDB 没有关系数据库之类的分页机制,要实现分页查询得硬编码,可以通过实现 Pageable 接口来自定义分页类,具体网上有很多介绍。

硬编码的缺点是实现太复杂了,也不好维护,对报表开发人员的要求有点高。简单一点的方式是使用支持 MongoDB 分批取数的报表工具,这样就可以解决大数据量查询的问题。可以参考这个: 海量清单与分组报表的实现

这里用了两个异步线程,取数线程通过封装好 MongoDB 接口返回查询游标将数据分批缓存到本地,呈现线程根据页数计算出行数到本地缓存中去获取数据显示,这样可以解决页码大时翻页慢问题。

画个图感受一下:
imagepng
②和③分别是两个线程,前者取数线程负责从 MongoDB 里分批取数缓存,后者呈现线程负责读缓存做报表呈现。

这样做以后,除了报表能异步查询外,还能支持导出 Excel 和打印。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/7838.html

(0)
上一篇 2023-03-13
下一篇 2023-03-13

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注