數據庫在磁盤中如何存儲?


  以Innodb引擎為准。  

  簡單的說,按照表空間、段、簇、頁進行存儲。

  1、當新建一個表,就會在磁盤上新建一個表空間(邏輯概念),用於存儲數據。

    一個表空間中包含多個段,包括葉子節點段(數據段),非葉子節點段(索引段),回滾段(保證數據完整性)。在Innodb引擎中,數據以索引組織,即聚集索引,新建一個索引,在表空間中會同時建立數據段和索引段。

  2、一個段又包括多個簇。

  簇是構成段的基本元素,一個段由若干個簇構成。一個簇是物理上連續分配的一個段空間,每一個段至少會有一個簇,在創建一個段時會創建一個默認的簇。如果存儲數據時,一個簇已經不足以放下更多的數據,此時需要從這個段中分配一個新的簇來存放新的數據。一個段所管理的空間大小是無限的,可以一直擴展下去,但是擴展的最小單位就是簇。

  3、一個簇由64個連續的頁組成。

  每個頁大小為16KB,即每個簇的大小為1MB。頁可以理解為簇的細化,在邏輯(頁面號連續遞增)和物理上頁的存儲都是連續的,在向表中插入數據時,如果一個頁面已經被寫完,系統會從當前簇中分配一個新的空閑頁面處理使用,如果當前簇中的64個頁面都被分配完,系統會從當前頁面所在段中分配一個新的簇,然后再從這個簇中分配一個新的頁面來使用。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM