今天给大家介绍一下读CSV/TXT的报表怎样做分页查询。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。
很容易想到的办法是把文本数据灌到 RDB 里,利用数据库分页机制来做,但这样做会对数据库产生很大影响(容量和性能),毕竟要分页查询的数据量不会太小。而且如果 CSV/TXT 数据就是从数据库导出去的,那这种方式基本就行不通了。
用 JAVA 硬写也是一种办法,就是比较麻烦,除了要能完成过滤、分组等集合运算,还要考虑异步查询的效率,如果通过行号(要遍历数据)确定每页的查询范围,效率就非常低了;通过字节数来确定每页要读的数据会快很多,但要保证每次读取的数据是整条的,如果读出的最后一条数据被截断,要有“补尾”机制,下一页再读的时候又要“去头”,要考虑的问题比较多。
直接用支持文本分页查询的报表工具会比较简单,比如这里介绍的实现过程: 海量清单与分组报表的实现 ,用两行脚本完成创建文件游标和数据过滤,报表基于游标完成异步分页呈现。这里用了两个异步线程,取数线程通过封装好的文本接口返回查询游标将数据分批缓存到本地,呈现线程根据页数计算出行数到本地缓存中去获取数据显示。这里已经解决了翻页效率和去头补尾的问题。
画个图感受一下:
②和③分别是两个线程,前者取数线程负责从文本里分批取数缓存,后者呈现线程负责读缓存做报表呈现。
这样做以后,除了报表能异步查询外,还支持导出 Excel 和打印,比较方便。
以上就是读CSV/TXT的报表怎样做分页查询的全部内容了,更多与读CSV/TXT的报表怎样做分页查询相关的内容可以搜索创新互联之前的文章或者浏览下面的文章进行学习哈!相信小编会给大家增添更多知识,希望大家能够支持一下创新互联!
分享文章:读CSV/TXT的报表怎样做分页查询-创新互联
新闻来源:http://lswzjz.com/article/gosep.html