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...