標籤:

如何理解Innodb 的文件物理結構?

數據文件的第一個Page類型為FIL_PAGE_TYPE_FSP_HDR,在創建一個新的表空間時進行初始化(fsp_header_init),該page同時用於跟蹤隨後的256個Extent(約256MB文件大小)的空間管理,所以每隔256MB就要創建一個類似的數據頁

資料庫第三個頁為inode頁記錄85個inode entry

如何理解 段 和 簇 與資料庫物理結構的關係呢?


innodb的layout分成幾個層次,如圖:

PAGE 一次IO的最小單位,默認16KB

EXTENT 數個連續的page

SEGMENT 由數個extents組成的集合

index(mysql把所有表都看成clustered index)對應兩個segment,leaf node segment和non-leaf node segment,分別存儲B+樹的葉子節點和非葉子節點

rollback segment存儲舊版本數據,用於回滾和多版本

TABLESPACE 最頂層的單位,包含一個或數個文件。innodb可以設置成每個表一個tablespace,或者共享tablespace(默認)

Tablespaces

Index File Segment

參考:

Jeremy Cole的InnoDB: A journey to the core

InnoDB Internals: InnoDB File Formats and Source Code Structure


推薦閱讀:

MySQL查詢優化器帶來的潛在問題
R markdown 連接mysql數據
MySQL變更datadir------CentOS7
MySQL入門(三):ORDER BY 語句用法
MySQL資料庫基礎——本地文件交互

TAG:MySQL | InnoDB |