以Innodb引擎為准。
簡單的說,按照表空間、段、簇、頁進行存儲。
1、當新建一個表,就會在磁盤上新建一個表空間(邏輯概念),用於存儲數據。
一個表空間中包含多個段,包括葉子節點段(數據段),非葉子節點段(索引段),回滾段(保證數據完整性)。在Innodb引擎中,數據以索引組織,即聚集索引,新建一個索引,在表空間中會同時建立數據段和索引段。
2、一個段又包括多個簇。
簇是構成段的基本元素,一個段由若干個簇構成。一個簇是物理上連續分配的一個段空間,每一個段至少會有一個簇,在創建一個段時會創建一個默認的簇。如果存儲數據時,一個簇已經不足以放下更多的數據,此時需要從這個段中分配一個新的簇來存放新的數據。一個段所管理的空間大小是無限的,可以一直擴展下去,但是擴展的最小單位就是簇。
3、一個簇由64個連續的頁組成。
每個頁大小為16KB,即每個簇的大小為1MB。頁可以理解為簇的細化,在邏輯(頁面號連續遞增)和物理上頁的存儲都是連續的,在向表中插入數據時,如果一個頁面已經被寫完,系統會從當前簇中分配一個新的空閑頁面處理使用,如果當前簇中的64個頁面都被分配完,系統會從當前頁面所在段中分配一個新的簇,然后再從這個簇中分配一個新的頁面來使用。