mysql 物理頁 mysql邏輯分頁和物理分頁

2021-10-17 16:48:24 字數 1938 閱讀 4635

部分 ** 

物理分頁

物理分頁:在資料庫執行查詢時(實現分頁查詢),查詢需要的資料 ---- 依賴資料庫sql語句,屬於後台分頁

mysql /sqlserver / oracle 每種資料庫寫法不同的

mysql 使用limit ,sqlserver 使用top ,oracle使用rownum

在mysql資料庫中offset關鍵字的意思是"越過",而limit關鍵字的意思是「限制」,利用這兩者結合可輕鬆物理分頁。

(1)取得符合條件的結果集,包含全欄位。

(2)利用offset關鍵字越過一段結果集(被越過的結果集就是"(當前頁 - 1) * 一頁顯示數")。

(3)利用limit關鍵字限制取得一段結果集(被限制取得的結果集就是一頁顯示數)

語法:select * from 表名 limit ? , ?;

第乙個引數 ? (當前頁數 -1) * 當前頁數要顯示的資料條數

第二個引數 ? 代表的是實際頁數要顯示的資料條數(這一頁要顯示多少資料)

第一頁select * from product limit 0, 3 --> 0,1,2

第二頁select * from product limit 3, 3 --> 3,4,5

第三頁select * from product limit 6, 3 --> 6,7,8

9, 3 ---> 9,10,11

12, 3 ---? 12,13,14

邏輯分頁

邏輯分頁:先查詢所有資料到記憶體,再從記憶體擷取需要資料 ------- 採用程式內部邏輯,屬於前台分頁

查詢所有資料 list,   list.sublist 擷取你需要資料

例如:查詢第11到第30條資料 list.sublist(開始索引,結束索引); // 前取到,後取不到 ----- list.sublist(10,30);

邏輯分頁的第一種方式,利用resultset的滾動分頁。步驟如下:

a.根據條件sql查詢資料庫。

b.得到resultset的結果集,由於resultset帶有游標,因此可以使用其next()方法來指向下一條記錄。

c.利用next()方法,得到分頁所需的結果集。

邏輯分頁的第二種方式

利用scrollable resultsets(可滾動結果集合)來快速定位到某個游標所指定的記錄行,所使用的是resultset的absolute()方法。

* 邏輯分頁方法二,使用absolute()方法分頁

* @param currentpage

* 當前頁

* @param showrows

* 一頁顯示的資料量

public listpagelisttwo(int currentpage, int showrows) catch (sqlexception e) finally catch (sqlexception e) {

e.printstacktrace();

return resultlist;

對比資料庫負擔

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

伺服器負擔

邏輯分頁一次性將資料讀取到記憶體,占用了較大的內容空間,物理分頁每次只讀取一部分資料,占用記憶體空間較小。

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

使用場合

邏輯分頁主要用於資料量不大、資料穩定的場合,物理分頁主要用於資料量較大、更新頻繁的場合。

總結物理分頁速度上並不一定快於邏輯分頁,邏輯分頁速度上也並不一定快於物理分頁。

物理分頁總是優於邏輯分頁:沒有必要將屬於資料庫端的壓力加諸到應用端來,就算速度上存在優勢, 然而其它效能上的優點足以彌補這個缺點。

在分頁工作前,有必要了解使用資料庫本身的一些sql語句特點更好的分頁

mysql 物理結構 mysql物理結構

mysql是通過檔案系統對資料和索引進行儲存的。mysql從物理結構上可以分為日誌檔案和資料索引檔案。mysql在linux中的資料索引檔案和日誌檔案都在 var lib mysql目錄下。日誌檔案採用順序io方式儲存 資料檔案採用隨機io方式儲存。首先可以檢視mysql的檔案在linux中的那個目...

mysql物理檔案 MySQL物理檔案組成

mysql物理檔案組成 1.錯誤日誌 error log 錯誤日誌記錄了mysql server執行過程中所有較為嚴重的警告和錯誤資訊,以及mysql server每次啟動和關閉的詳細資訊,在預設情況下,系統記錄錯誤日誌的功能是關閉的,錯誤資訊被輸出到標準錯誤輸出,如果要開啟系統記錄錯誤日誌的功能,...

mysql日誌系統 SQL 邏輯日誌 物理日誌

更新語句執行的流程和查詢語句執行的流程一樣 注意 在乙個表上有更新的操作的時候,和這個表相關的查詢快取就會被清空 在經歷分析器,優化器,和執行器儲存引擎的歷程中,還多了重要的日誌模組 redo log 重做日誌 bin log 歸檔日誌 是innodb 引擎獨有的日誌模組 它的關鍵點就是更新的時候先...