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

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

物理存儲(chǔ)

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

邏輯存儲(chǔ)

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

邏輯-物理映射

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

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

  • 表空間:ibdata公用表空間文件,也可以通過配置innodb_file_per_table設(shè)置獨(dú)立表空間文件 i...
    轉(zhuǎn)過閱讀 452評(píng)論 0 0
  • 不同類型的頁簡介 前邊我們簡單提了一下頁的概念,它是InnoDB管理存儲(chǔ)空間的基本單位,一個(gè)頁的大小一般是16KB...
    tracy_668閱讀 1,232評(píng)論 1 6
  • 本文分享InnoDB如何規(guī)劃表空間,如何存儲(chǔ)表空間元信息以及用戶數(shù)據(jù)。 思考一個(gè)問題,如果給你一個(gè)文件,讓你存儲(chǔ)M...
    binecy閱讀 976評(píng)論 0 0
  • 1. 硬鏈接和軟連接區(qū)別 硬連接-------指通過索引節(jié)點(diǎn)來進(jìn)行連接。在Linux的文件系統(tǒng)中,保存在磁盤分區(qū)...
    杰倫哎呦哎呦閱讀 2,549評(píng)論 0 2
  • mmap基礎(chǔ)概念 mmap是一種內(nèi)存映射文件的方法,即將一個(gè)文件或者其它對(duì)象映射到進(jìn)程的地址空間,實(shí)現(xiàn)文件磁盤地址...
    dequal閱讀 1,397評(píng)論 0 1

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