程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> [MySQL]InnoDB邏輯存儲結構

[MySQL]InnoDB邏輯存儲結構

編輯:MySQL綜合教程

[MySQL]InnoDB邏輯存儲結構   InnoDB存儲引擎中的表非常像Oracle中的索引組織表,每張表必須得有主鍵,如果表在創建時沒有顯示定義主鍵,則根據以下原則自動創建主鍵:   1)如果有非空的唯一索引,則該索引所在的列為主鍵; 2)如果不符合上述條件,自動創建一個6個字節的指針為主鍵。   InnoDB存儲引擎的邏輯存儲結構和Oracle幾乎一樣,從大到小分別為:表空間、段、區、頁,它們的關系如下圖所示:     表空間 在上一篇《MySQL InnoDB文件介紹》http://www.BkJia.com/database/201306/219327.html中,我們知道InnoDB有一個默認的表空間,如果我們啟用了參數innodb_file_per_table,則針對每張可以單獨放在表空間裡。這裡需要注意的是,即時啟用了innodb_file_per_table,也並不是表中所有的數據都單獨放在自己的表空間裡,單獨表空間只存放數據、索引和插入緩沖,其它如Undo、系統事務信息、二次寫緩沖等還是存放在默認共享表空間裡。   段 表空間有若干各段組成,常見的有數據段、索引段、回滾段等。前面提到InnoDB中的表是索引組織表,因此數據段也稱為leaf node segment,索引段也稱為non-leaf node segment。   區 每64個連續的頁組成區,因此區大小正好為1M。   頁 頁是InnoDB磁盤管理的最小單位,固定大小為16K,不可以更改(也許通過更改源碼可以修改固定大小)。   行 InnoDB表中數據按行存儲。
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved