大數據量的報表如何快速分頁呈現?

在說明這個問題的處理方法前,先了解下是什麼原因導致的大數據量報表呈現慢的問題。

一般不外乎這兩種原因:

1 . 數據查詢業務,查詢條件寬泛,導致數據庫查詢後的結果集數據條數達到幾百上千萬甚至過億;

2 . 採用內存運算機制,即如此龐大的數據量要一次性在內存計算完成,後再進行呈現,用戶體驗特別不好,這個過程中很可能因爲計算量大 出現內存溢出,無法繼續計算。

針對這種情況,我們可以採用異步處理的方式,將取數和呈現分爲兩個線程異步處理,取數線程發出 SQL 後不斷取出數據緩存到本地,由呈現線程從本地緩存中獲取數據進行顯示。這樣,已經取出並緩存的數據就能快速呈現,不再有等待感;而取數線程所涉及的 SQL,在數據庫中保持同一個事務,也不會有不一致的問題,前面提到的兩個問題全部得以完美解決。

同時,藉助二進制文件存儲格式,報表還可以按行號隨機訪問記錄,而不用每次通過遍歷查找數據。也就是說,這種存儲格式支持跳轉到任意頁訪問,從而極大地改善了用戶體驗。不過,由於採用了異步機制,頁面端顯示的總頁數和總記錄數會隨着取數過程不斷變化。

目前潤乾報表已經將這種處理機制產品化,只需要一個簡單的設置就可以了。

詳細設置可參考:秒級展現的百萬級大清單報表怎麼做

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章