BS優(yōu)化:分頁原理
文章出處:http://hlpi.cn 作者:興邦開發(fā)部
BS優(yōu)化:分頁原理淺析
分頁,是web應用程序非常重要的一個課題,。數(shù)據庫的數(shù)據可能是幾千,,幾萬,幾百萬行,,但我們不可能把幾萬行數(shù)據一次顯示在瀏覽器上面,,這樣瀏覽器受不了,用戶也受不了,。一般的每頁顯示20行,,是一個比較理想的顯示狀態(tài)。
分頁主要有兩種思路:
1,、取出所有符合條件的數(shù)據,,放到數(shù)據集或者內存當中,然后逐頁瀏覽,。那么,,有可能你每頁只需瀏覽20條記錄,但要把幾百萬行記錄取出來,。我把這種分頁叫做“指針分頁”,。指針分頁法主要是利用數(shù)據集的指針(或者集合的下標)來標識,。比如,,分頁要顯示20條數(shù)據,那么第一頁的指針從1開始,第二頁的指針從(2-1)*20+1開始,,依次類推,。“指針分頁”適合數(shù)據量和并發(fā)量不是很高的應用系統(tǒng),不適合海量的數(shù)據查詢,。
2,、對于海量的數(shù)據查詢,看多少取多少,,顯然是最佳的解決辦法,。假如某個表中有200萬條記錄,第一頁就取前20條,,第二頁取21~40條,,這里我們用
當前頁*每頁記錄數(shù) 表A 主鍵字段每頁記錄數(shù) 主鍵字段表。
這樣形式的語句來實現(xiàn),。因這種查詢方式,,要用到主鍵,我們把它叫做“主鍵分頁”,。
主鍵分頁在處理海量數(shù)據方面,,效率是非常高的,也是首選,。
對于一個完整的分頁,,應當包括總記錄數(shù)、總頁數(shù),、當前頁數(shù),、當前頁、每頁記錄數(shù),、向前,、向后、跳轉等,。所以,,無論是指針分頁,還是主鍵分頁,,還得傳遞一個類似 記錄總數(shù) 表名 這樣的語句,,從而獲得記錄數(shù)。 顯然,,主鍵分頁是首選,,但是他的寫法太復雜,太麻煩,,又何況對于聯(lián)合查詢,、多表查詢等情況,,這個sql語句的寫法,會更加復雜,,會更加花費我們有限的大腦細胞,。所以,得到一種通用,,同時不需要寫那么復雜的sql語句的程序,,同時解決普通查詢和海量查詢的分頁很有必要。