一 概述
1.物理分頁(yè)
物理分頁(yè)依賴的是某一物理實(shí)體棋返,這個(gè)物理實(shí)體就是數(shù)據(jù)庫(kù)卷雕,比如MySQL數(shù)據(jù)庫(kù)提供了limit關(guān)鍵字钱雷,程序員只需要編寫帶有l(wèi)imit關(guān)鍵字的SQL語(yǔ)句骂铁,數(shù)據(jù)庫(kù)返回的就是分頁(yè)結(jié)果。
2.邏輯分頁(yè)
邏輯分頁(yè)依賴的是程序員編寫的代碼罩抗。數(shù)據(jù)庫(kù)返回的不是分頁(yè)結(jié)果拉庵,而是全部數(shù)據(jù),然后再由程序員通過代碼獲取分頁(yè)數(shù)據(jù)套蒂,常用的操作是一次性從數(shù)據(jù)庫(kù)中查詢出全部數(shù)據(jù)并存儲(chǔ)到List集合中钞支,因?yàn)長(zhǎng)ist集合有序,再根據(jù)索引獲取指定范圍的數(shù)據(jù)操刀。
二 對(duì)比
1.數(shù)據(jù)庫(kù)負(fù)擔(dān)
物理分頁(yè)每次都訪問數(shù)據(jù)庫(kù)烁挟,邏輯分頁(yè)只訪問一次數(shù)據(jù)庫(kù),物理分頁(yè)對(duì)數(shù)據(jù)庫(kù)造成的負(fù)擔(dān)大骨坑。
2.服務(wù)器負(fù)擔(dān)
邏輯分頁(yè)一次性將數(shù)據(jù)讀取到內(nèi)存撼嗓,占用了較大的內(nèi)容空間,物理分頁(yè)每次只讀取一部分?jǐn)?shù)據(jù)欢唾,占用內(nèi)存空間較小且警。
3.實(shí)時(shí)性
邏輯分頁(yè)一次性將數(shù)據(jù)讀取到內(nèi)存,數(shù)據(jù)發(fā)生改變礁遣,數(shù)據(jù)庫(kù)的最新狀態(tài)不能實(shí)時(shí)反映到操作中斑芜,實(shí)時(shí)性差。物理分頁(yè)每次需要數(shù)據(jù)時(shí)都訪問數(shù)據(jù)庫(kù)祟霍,能夠獲取數(shù)據(jù)庫(kù)的最新狀態(tài)杏头,實(shí)時(shí)性強(qiáng)。
4.適用場(chǎng)合
邏輯分頁(yè)主要用于數(shù)據(jù)量不大沸呐、數(shù)據(jù)穩(wěn)定的場(chǎng)合醇王,物理分頁(yè)主要用于數(shù)據(jù)量較大、更新頻繁的場(chǎng)合垂谢。