您好,登錄后才能下訂單哦!
今天給大家介紹一下讀CSV/TXT的報表怎樣做分頁查詢。文章的內(nèi)容小編覺得不錯,現(xiàn)在給大家分享一下,覺得有需要的朋友可以了解一下,希望對大家有所幫助,下面跟著小編的思路一起來閱讀吧。
很容易想到的辦法是把文本數(shù)據(jù)灌到 RDB 里,利用數(shù)據(jù)庫分頁機(jī)制來做,但這樣做會對數(shù)據(jù)庫產(chǎn)生很大影響(容量和性能),畢竟要分頁查詢的數(shù)據(jù)量不會太小。而且如果 CSV/TXT 數(shù)據(jù)就是從數(shù)據(jù)庫導(dǎo)出去的,那這種方式基本就行不通了。
用 JAVA 硬寫也是一種辦法,就是比較麻煩,除了要能完成過濾、分組等集合運(yùn)算,還要考慮異步查詢的效率,如果通過行號(要遍歷數(shù)據(jù))確定每頁的查詢范圍,效率就非常低了;通過字節(jié)數(shù)來確定每頁要讀的數(shù)據(jù)會快很多,但要保證每次讀取的數(shù)據(jù)是整條的,如果讀出的最后一條數(shù)據(jù)被截斷,要有“補(bǔ)尾”機(jī)制,下一頁再讀的時候又要“去頭”,要考慮的問題比較多。
直接用支持文本分頁查詢的報表工具會比較簡單,比如這里介紹的實現(xiàn)過程: 海量清單與分組報表的實現(xiàn) ,用兩行腳本完成創(chuàng)建文件游標(biāo)和數(shù)據(jù)過濾,報表基于游標(biāo)完成異步分頁呈現(xiàn)。這里用了兩個異步線程,取數(shù)線程通過封裝好的文本接口返回查詢游標(biāo)將數(shù)據(jù)分批緩存到本地,呈現(xiàn)線程根據(jù)頁數(shù)計算出行數(shù)到本地緩存中去獲取數(shù)據(jù)顯示。這里已經(jīng)解決了翻頁效率和去頭補(bǔ)尾的問題。
畫個圖感受一下:
②和③分別是兩個線程,前者取數(shù)線程負(fù)責(zé)從文本里分批取數(shù)緩存,后者呈現(xiàn)線程負(fù)責(zé)讀緩存做報表呈現(xiàn)。
這樣做以后,除了報表能異步查詢外,還支持導(dǎo)出 Excel 和打印,比較方便。
以上就是讀CSV/TXT的報表怎樣做分頁查詢的全部內(nèi)容了,更多與讀CSV/TXT的報表怎樣做分頁查詢相關(guān)的內(nèi)容可以搜索億速云之前的文章或者瀏覽下面的文章進(jìn)行學(xué)習(xí)哈!相信小編會給大家增添更多知識,希望大家能夠支持一下億速云!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。