InnoDB 儲存引擎

2021-09-08 11:21:01 字數 928 閱讀 7746

innodb是事務型資料庫的首選引擎,支援事務安全表(acid),支援行鎖定和外來鍵。mysql 5.5.5 之後,innodb作為預設儲存引擎。innodb的主要特性有一下幾項。

a.innodb給mysql提供了具有提交、回滾和崩潰恢復能力的事務安全(acid相容)儲存引擎。innodb鎖定在行級並且也在select語句中提供乙個類似oracle的非鎖定讀。這些功能增加了多使用者部署和效能。在 sql 查詢中,可以自由的將 innodb 型別的表與其他 mysql 的表型別混合起來,甚至在同乙個查詢中也可以混合。

b.innodb 是為處理巨大資料量的最大效能設計。它的 cpu 效率可能是任何其它基於磁碟的關聯式資料庫引擎所不能匹敵的。

c.innodb 儲存引擎完全與 mysql 伺服器整合, innodb 儲存引擎為在主記憶體中快取資料和索引而維持它自己的緩衝池。innodb 將它的表和索引存在乙個邏輯表空間中,表空間可以包含數個檔案(或原始磁碟分割槽)。這與 myisam 表不同,比如在myisam表中每個表被存在分離的檔案中。 innodb 表可以是任何尺寸,即使在檔案尺寸被限制為2gb 的作業系統上也是如此。

d.innodb 支援外來鍵完整性約束(foreign key)。儲存表中的資料時,每張表的儲存都按主鍵順序存放,如果沒有顯示在表定義是指定主鍵。innodb 會為每一行生成乙個 6b 的 rowid ,並以此作為主鍵。

e.innodb  被用在眾多需要高效能的大型資料庫站點上。 innodb 不建立目錄, 使用 innodb 時, mysql 將在 mysql 資料目錄下建立乙個名為 ibdata 1 的 10mb 大小的自動擴充套件資料檔案,以及兩個名為 ib_logfile0 和ib_logfile1 的 5mb 大小的日誌檔案。

InnoDB 儲存引擎

設計上採用了類似於oracle資料庫的架構 接下來 詳細介紹 innodb 儲存引擎的 體系架構 及其不同於其他儲存引擎的特性 一 概述 innodb 儲存引擎 是第乙個完整支援acid事物的 mysql 儲存引擎 特點 1 行鎖設計 2 支援mvcc 3 提供一致性非鎖定讀 4 最有效地利用 以及...

InnoDB儲存引擎

內外存交換的基本單位 mysql將資料從外存讀入記憶體不是以記錄為單位,這樣消耗太大,是以頁為單位,每個頁裡填充記錄。每頁大小為16kb。記錄堆 行記錄儲存區,分為有效記錄和已刪除記錄兩種 自由空間鍊錶 已刪除記錄組成的鍊錶 未分配空間 頁尾 儲存頁面校驗資訊 頁內的資料是按照主鍵的順序有序儲存的。...

InnoDB儲存引擎

後台程序 innodb緩衝池 磁碟檔案 主要是負責重新整理快取池裡的資料,保證緩衝池中的資料是最近的。master thread 將緩衝池中的資料非同步重新整理到磁碟中,保證資料的一致性。io thread 使用大量的aio進行io呼叫,處理io請求 innodb write io threads ...