MySQL Innodb儲存結構

2022-03-15 09:19:03 字數 938 閱讀 7800

上圖擷取網際網路

innodb儲存引擎中的資料按照表空間進行管理。在初始化時建立乙個共享表空間(ibdata1),他存放innodb的所有資料(系統表,回滾(undo)資訊【5.7可以單獨配置undo表空間】,插入緩衝索引頁、系統事務資訊,二次寫緩衝)。若開啟了innodb_file_per_table引數時,每張表建立獨立的表空間儲存(b+樹的資料、索引和插入緩衝bitmap頁),其它資訊仍然儲存在預設的表空間中。

表空間由段(segment)、區(extent)、頁(page)組成。

段是表空間的主要組織結構,用來管理物理檔案。建立乙個索引(b+樹)時,預設同時建立兩個段,分別是內節點段(儲存主鍵)和葉子節點段(儲存資料)

區是由物理上連續分配的一段空間(每個區的大小都為1mb),預設innodb頁(16k)的情況下,乙個區由64個連續頁組成。【16k * 64 = 1m】

頁是檔案管理的最小單位,預設每個頁的大小為16kb。innodb_page_size引數可以配置頁面大小(2kb,4kb, 8kb,16kb等)

常見的頁型別:

1)資料頁(b-tree node)

2)undo頁(undo log page)

3)系統頁(system page)

4)事務資料頁(transaction system page)

5)插入緩衝點陣圖頁(insert buffer bitmap)

6)插入緩衝空閒列表頁(insert buffer free list)

7)未壓縮的二進位製大物件頁(uncompressed blob page)

8)壓縮的二進位製大物件頁(compressed blob page)

關係型資料庫中資料是按行進行存放的。

MySQL InnoDB 儲存結構

mysql innodb 儲存結構 innodb儲存引擎的關鍵特性包括 插入緩衝 insert buffer 兩次寫 double write 自適應雜湊索引 adaptive hash index 非同步io async io 重新整理鄰接頁 從邏輯上講 所有的資料都被邏輯的放在乙個空間中,稱為t...

MySQL InnoDB邏輯儲存結構

innodb儲存引擎中的表非常像oracle中的索引組織表,每張表必須得有主鍵,如果表在建立時沒有顯示定義主鍵,則根據以下原則自動建立主鍵 1 如果有非空的唯一索引,則該索引所在的列為主鍵 2 如果不符合上述條件,自動建立乙個6個位元組的指標為主鍵。innodb儲存引擎的邏輯儲存結構和oracle幾...

MySQL InnoDB 邏輯儲存結構

mysql innodb 邏輯儲存結構 從innodb儲存引擎的邏輯結構看,所有資料都被邏輯地存放在乙個空間內,稱為表空間,而表空間由段 sengment 區 extent 頁 page 組成。ps 頁在一些文件中又稱塊 block innodb儲存引擎的邏輯儲存結構大致如下 一 表空間 table...