MySQL磁盤結(jié)構(gòu)

MySQL磁盤結(jié)構(gòu)

物理存儲

  • 一個表空間的物理存儲有很多個組組成,每個組有256M大小,每個組由256個區(qū)構(gòu)成,每個區(qū)大小為1M,每個區(qū)有64個頁,每頁有16K
  • 組與組之間以不斷增長的數(shù)組的形式構(gòu)成,這樣可以保證段空間是可以不斷擴展(autoextend)的
  • 物理存儲的基本單位是區(qū)和頁
  • 表空間的首組的第一個頁(FSP)記錄著全表信息和全組的區(qū)描述符,第二個頁記錄InsertBuffer信息,第三個頁記錄著Inode信息; 表空間的其余各組的第一個頁(XDES)記錄全組的區(qū)描述符,第二個頁記錄InsertBuffer信息
  • 每個區(qū)都由一個區(qū)描述符進行描述,存放在FSP或XDES類型的頁面中,一個FSP或XDES類型的頁面可以包含256個區(qū)描述符
  • 每個段也都由一個段描述符進行描述,存放在INODE類型的頁面中,一個INODE類型的頁面可以包含最多85個段描述符,多個INODE類型的頁面可以鏈接在一起,從而存儲無限個段描述符

邏輯存儲

  • 每一個表由表空間屬性和完全空閑碎片區(qū)鏈表、部分空閑碎片區(qū)鏈表、非空閑碎片區(qū)鏈表和多個段組成
  • 多個段的段描述符以分組鏈表的形式存儲,每個段由32個零散頁和完全空閑區(qū)鏈表、部分空閑區(qū)鏈表、非空閑區(qū)鏈表組成
  • 一個索引由兩個段組成,所有的非葉子節(jié)點組成一個段,葉子節(jié)點組成另一個段

邏輯-物理映射

  • 表:表的元屬性保存在第一個組的第一個頁中,通過直接讀取獲得
  • 表中的碎片區(qū):所有表中的碎片區(qū)以鏈表的形式鏈接起來
  • 表中的索引:一個表由多個索引組成,每個索引兩個段,這些段被放在多個INODE頁面中,多個INODE頁面被鏈接起來
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容