千萬級數據的分頁


問題

 

想說這個問題,來源來自於CSDN論壇的一個帖子:《sqlserver2005,1690萬的數據量怎么快速分頁查詢

 

在之前也有很多人問類似這樣的問題,回復這樣的問題,我們一般會從索引,水平分區,垂直分區和硬件的升級等方面考慮。

 

 分析

 

對於千萬級數據的分頁,要求在秒級內響應,解決方案除了剛列的幾個方面考慮,這里說一個非常重要的考慮(評估)是,現實意義。

拿CSDN論壇的那1690萬數據來說,我按每頁顯示200行數據,需要84500頁。從站在用戶(使用者)角度看,對於查看1萬頁以后的數據的概率是非常小。假設我們是使用者,讓我們一頁一頁的點,點到100頁都夠郁悶的了,更何況是1萬頁后的數據了。這里從現實意義角度考慮,1萬頁以后的現實意義有多大?

 

 解決方案

 

 根據從現實意義角度分析,對千萬級數據的分頁,我們呈現給用戶的,首先考慮的是用戶最關心的,對用戶來最有價值的信息。對於過期,沒意義的數據需要考慮不呈現給用戶。因為呈現沒意義的數據,對用戶來說多余,對后台服務器來說負荷,嚴重的可能會導致服務器癱瘓。

 在大型網站都有這方面的考慮,控制呈現的總頁數,下面我們列出幾個網站采用控制總頁數的方案:

 

 

搜狗最多顯示100頁:  

 

 

 

 百度最多顯示76頁,其實你點到76頁,顯示第75頁,感覺這位置有問題,而且相關結果就是1億個。這里有玩文字的,使用了一個“約”,雲里霧里的,蒙人呀。

很多時候你稍注意下,都是返回1億個,O(∩_∩)O~。

 

 

測試Google,大概分頁最大頁范圍是71-79頁,它好一點就是沒像百度籠統用“1億”。

 

 

 淘寶的寶貝搜索最大頁是200頁

 

 

小結

 

 從前邊的問題到分析,及解決方案,我們可以了解對千萬級數據分頁的處理,最重要的一個評估方面就是,現實意義,需要多站在使用者角度分析問題,參考成功案例,從而找到可行的解決方案。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM