MySQL InnoDB邏輯儲存結構

2021-09-07 10:16:21 字數 726 閱讀 5602

innodb儲存引擎中的表非常像oracle中的索引組織表,每張表必須得有主鍵,如果表在建立時沒有顯示定義主鍵,則根據以下原則自動建立主鍵:

1)如果有非空的唯一索引,則該索引所在的列為主鍵;

2)如果不符合上述條件,自動建立乙個6個位元組的指標為主鍵。

innodb儲存引擎的邏輯儲存結構和oracle幾乎一樣,從大到小分別為:表空間、段、區、頁,它們的關係如下圖所示:

表空間

我們知道innodb有乙個預設的表空間,如果我們啟用了引數innodb_file_per_table,則針對每張可以單獨放在表空間裡。這裡需要注意的是,即時啟用了innodb_file_per_table,也並不是表中所有的資料都單獨放在自己的表空間裡,單獨表空間只存放資料、索引和插入緩衝,其它如undo、系統事務資訊、二次寫緩衝等還是存放在預設共享表空間裡。

段 表空間有若干各段組成,常見的有資料段、索引段、回滾段等。前面提到innodb中的表是索引組織表,因此資料段也稱為leaf node segment,索引段也稱為non-leaf node segment。

區 每64個連續的頁組成區,因此區大小正好為1m。

頁 頁是innodb磁碟管理的最小單位,固定大小為16k,不可以更改(也許通過更改原始碼可以修改固定大小)。

行 innodb表中資料按行儲存。

MySQL InnoDB 邏輯儲存結構

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

mysql InnoDB儲存引擎

innodb的組成部分 1.後台執行緒 2.儲存引擎記憶體池 innodb儲存引擎記憶體緩衝池 1.記憶體緩衝池 innodb是基於磁碟儲存的,並將其中的記錄按照頁的方式進行管理。因此,可將其視為基礎磁碟的資料庫系統。在資料庫系統中,由於cpu速度與磁碟速度之間的紅狗,基於磁碟的資料庫系統通常使用緩...

MySQL InnoDB 儲存結構

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