大資料分頁解決方案

來源:互聯網
上載者:User

標籤:style   http   使用   資料   問題   ar   資料庫   伺服器   

1 編寫目的
 解決系統需要檢索大資料列表時的效能問題,而提出的分頁方案
2 術語、定義和縮減語
   

3 大資料量檢索的效能問題分析
大資料量檢索的效能存在問題,問題主要包括

3.1 用戶端在IE或者cs端資料量過大會導致IE變慢,甚至死結
現象:
  IE瀏覽器崩潰
  瀏覽器白板,停止回應

3.2 用戶端--web伺服器之間的資料轉送量大會導致用戶端速度變慢,效率降低
現象:
IE瀏覽器長期在等待時白板
IE 瀏覽器操作慢

3.3 中介層構造大資料列表會導致中介層效能降低
現象:
並發訪問多時,應用伺服器和資料庫伺服器cpu佔有量過大
導致系統效能降低

3.4 資料庫sql一次選取大資料量會導致資料庫效能降低
3.4.1 如果一次查詢返回資料過多會影響效能
3.4.2 如果檢索條件繁瑣也會影響效能
現象:
並發訪問多時,資料庫伺服器負載大cpu佔有量過大
資料庫伺服器和應用伺服器通訊會造成瓶頸

4 方案論證
4.1 傳統解決方案候選方案- web服務端分頁
在web服務端實現分頁,根據使用者選擇的頁數,選取指定的資料返回到用戶端
  優點:開發簡單
  優點:解決了web端和用戶端資料傳遞的問題
  缺點:不能解決中介層和資料庫的效能

4.2 最佳化解決方案(1)-資料庫分頁
根據使用者當前選擇的頁數,每次從資料庫選取這些資料,比如每頁100條,選第二頁的時候就只查詢第200條到300條的資料。
 
1) 設計分析。
優點:可以解決除3.4.2外的所有效能問題
 缺點:每次查詢要用rownum構造子查詢選取指定資料
 缺點:Oracle 和 Sqlserver2005都支援,但之前的sqlserver版本只支援Top
 缺點:大資料量如果檢索條件效能低的話,不能解決1.4.2的效能問題
 缺點:開發稍微複雜,但是可以通過封裝解決
4.3 最佳化解決方案(2)-所見即所取的虛模式資料庫分頁()
第一次查詢返回第一頁的列表資料,然後非同步擷取一定數量級的serial_id到用戶端,客戶選擇頁數的時候把此頁的serial_id傳遞到伺服器構造 id=001 or id = 002 or id = 003 的查詢,返回列表資料。。
 
1設計問題。
優點:可以解決所有的大資料量的效能問題。
這樣做主要是解決檢索條件繁瑣的效能問題,主要情境就是檢索效能低的時候,只有第一頁速度慢,然後每頁速度都很快(因為是通過主鍵檢索)
優點:不使用資料庫特性,任何資料庫都支援
缺點:開發複雜,但是可以通過封裝解決

4.4 其他提高效能的方法

a) 大部分使用者都是只看第一頁資料,首次選取只選取前pagesize條資料。點每個頁碼的時候再試用分頁方案
b) 系統bs端沒有優秀的清單控制項,還沒能實現顯示列的自定製,實現了顯示列的自定製,可以在db端只選取指定列的資料。
c) 也可以不用分頁的模式,用虛模式的捲軸列表來瀏覽資料,實際的展示效果比分頁模式好

參考: (1)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.