首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

深入理解 MySQL BDB 系列(三):資料頁結構分析

     編輯:關於SqlServer

四、資料頁結構

4.1 B/H 主要頁結構

4.1.1 結構圖

B/H 主要頁結構圖

4.1.2 資料結構定義

typedef struct _db_page {
    DB_LSN       lsn;           // LSN (Log Sequence Number)
    db_pgno_t    pgno;          // 頁號
    db_pgno_t    prev_pgno;     // 前一頁頁號
    db_pgno_t    next_pgno;     // 後一頁頁號
    u_int32_t    type;          // 頁面類型
    u_int32_t    flags;         // 標誌位
    u_int32_t    cnt;           // 頁面上的項目計數
    db_indx_t    off;           // 空閒空間偏移量
    u_int8_t     unused[2];     // 保留欄位
    u_int8_t     data[1];       // 實際資料區域(柔性陣列)
} DB_PAGE;

欄位詳細說明

  • lsn:日誌序號,用於崩潰復原與 WAL 機制
  • pgno / prev_pgno / next_pgno:雙向鏈結清單指標,串聯同類型頁面
  • type:頁面類型(B-tree 內部節點、葉節點、Hash 桶頁、Meta 頁等)
  • flags:頁面狀態標誌(髒頁、加密、壓縮等)
  • cnt:頁面上目前儲存的鍵值/記錄數量
  • off:指向頁面內可用空間起始位置
  • data:實際承載資料的區域,結構隨頁面類型而異

此結構為 BDB 存取方法(B-tree、Hash、Queue、Recno)共用的基礎頁面頭部,後續資料區域佈局依具體存取方法而定。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved