報表有 100 多萬條資料,展現太慢了怎麼辦?
報表要展現 100 多萬資料得用分頁方式查詢了,如果是自己寫程式碼開發的報表就再實現一下分頁查詢就可以,不同的資料庫實現機制不一樣,具體網上資料很多。
如果是用報表工具開發的報表,要看工具本身是否支援非同步的分頁查詢,很多報表工具提供的還是常規分頁(假分頁),即一次性把資料載入到記憶體,然後前端再分頁展示。
好一點的方式是用資料庫分頁機制來做,利用行號來過濾,但這種方式也有很多弊端,比如你會發現翻到後面會越來越慢,還有這個裡面
提到的一些問題。
還有一種更好的方式,按照上面帖子裡給出的思路。把取數和呈現做現兩個非同步執行緒,取數執行緒發出 SQL 後就不斷取出資料後快取到本地儲存中,呈現執行緒根據頁數計算出行數到本地快取中去獲取資料顯示。這樣,只要已經取過的資料就能快速呈現,不會有等待感,還沒取到的資料需要等待一下也是正常可理解的;而取數執行緒只涉及一句 SQL,在資料庫中是同一個事務,也不會有不一致的問題。這樣,兩個問題都能得到解決。不過這需要設計一種可以按行號隨機訪問記錄的儲存格式,不然要靠遍歷把記錄數出來,那反應仍然會很遲鈍。
畫個圖感受感受:
②和③分別是兩個執行緒
看起來有點複雜,還是拿個做好的工具直接用吧:
還能匯出 Excel,也能列印。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69900830/viewspace-2700364/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 大資料量報表展現慢容易卡死,怎麼辦?大資料
- 報表從資料庫中採集相關資料生成報表,資料太少怎麼辦?資料庫
- mac太燙怎麼辦?Mac
- 怎麼快速插入 100 條資料,用時最短!
- 資料分析報表怎麼做
- Oracle查詢前100萬條資料Oracle
- web 端展現報表資料時如何實現摺疊展開效果?Web
- mysql建立資料庫報錯了怎麼辦MySql資料庫
- win10沒有wifi只有乙太網該怎麼辦Win10WiFi
- 怎麼控制報表的資料許可權
- 資料庫以後可能換,現在報表怎麼做好一點?資料庫
- 沒有足夠多的資料怎麼辦?計算機視覺資料增強方法總結計算機視覺
- 怎樣報表資料庫資料庫
- solidworks資料失真怎麼辦,解決方法有哪些Solid
- 報表怎麼動態選擇資料來源
- 資料庫變慢了的分析及解決辦法資料庫
- 資料庫中的圖片欄位怎麼在報表中呈現資料庫
- windows10系統太刺眼怎麼辦_windows10螢幕太刺眼怎麼調Windows
- mybatis怎麼實現insert into多個資料-oracle資料庫MyBatisOracle資料庫
- 100多萬個視訊短片資料集來啦!
- 匯出資料量大的報表記憶體溢位怎麼辦?記憶體溢位
- 未來系統擴充套件,報表怎麼辦?套件
- 怎麼更新BI報表資料?問我就對了
- 網站出現資料庫連線錯誤怎麼辦?網站資料庫
- 資料庫表中一對多關係怎麼設計?資料庫
- 私人資料不想要怎麼辦?
- win10沒有wlan只有乙太網怎麼辦 win10突然沒有wifi功能Win10WiFi
- 報表連 MongoDB,資料量大報表慢,怎麼做分頁?MongoDB
- 同樣的SQL,怎麼突然就慢了?SQL
- 報表展現時如何實現固定表頭效果
- 多對多關聯的時候,怎麼返回中間表的資料集合
- Win10乙太網屬性空白怎麼辦Win10
- 如果要將一款遊戲做到100萬DAU,運營該怎麼辦?遊戲
- php+sql後臺實現從主表遷出至副表(資料超萬條)PHPSQL
- outln下的ol$nodes有6百多萬資料
- 【HBase】誤刪除資料怎麼辦?
- 用.Net報表控制元件,實現20萬門店的資料管理控制元件
- gorm 專案使用多數資料庫 怎麼實現好GoORM資料庫