如何理解Innodb 的文件物理結構?
06-13
數據文件的第一個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(默認)
參考:
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資料庫基礎——本地文件交互