1. 程式人生 > >物理分頁和邏輯分頁

物理分頁和邏輯分頁

mysql數據庫 只需要 能夠 占用 lis list集合 實時性 空間 集合

一、概述

1、物理分頁

物理分頁依賴的是某一物理實體,這個物理實體就是數據庫,比如MySQL數據庫提供了limit關鍵字,程序員只需要編寫帶有limit關鍵字的SQL語句,數據庫返回的就是分頁結果。

2、邏輯分頁

邏輯分頁依賴的是程序員編寫的代碼。數據庫返回的不是分頁結果,而是全部數據,然後再由程序員通過代碼獲取分頁數據,常用的操作是一次性從數據庫中查詢出全部數據並存儲到List集合中,因為List集合有序,再根據索引獲取指定範圍的數據。

二 、對比

1.數據庫負擔

物理分頁每次都訪問數據庫,邏輯分頁只訪問一次數據庫,物理分頁對數據庫造成的負擔大。

2.服務器負擔

邏輯分頁一次性將數據讀取到內存,占用了較大的內容空間,物理分頁每次只讀取一部分數據,占用內存空間較小。

3.實時性

邏輯分頁一次性將數據讀取到內存,數據發生改變,數據庫的最新狀態不能實時反映到操作中,實時性差。物理分頁每次需要數據時都訪問數據庫,能夠獲取數據庫的最新狀態,實時性強。

4.適用場合

邏輯分頁主要用於數據量不大、數據穩定的場合,物理分頁主要用於數據量較大、更新頻繁的場合。不能僅僅停滯在實現上,應該去追求代價更小、性能更優的實現

物理分頁和邏輯分頁