mysql的Innodb儲存引擎學習

2021-06-18 06:15:06 字數 1419 閱讀 3451

總是記不住事情,已經看過好幾本mysql的書了,但是不經常用,很多基礎性的東西又都忘了,從今天開始,將重新看mysql的書籍,並做相應的記錄

innodb儲存引擎

1.支援事務安裝

innodb 在功能方面最重要的一點就是對事務安全的支援,這無疑是讓 innodb 成為 mys ql最為流行的儲存引擎之一的乙個非常重要原因。而且實現了 sql92 標準所定義的所有四個 級別( read uncommitted , read committed , repeatable read 和 serializable )。對事務安全的支援,無疑讓很多之前因為特殊業務要求而不得不放棄使用 mysql 的使用者轉向支援mysql ,以及之前對資料庫選型持觀望態度的使用者,也大大增加了對 mysql 好感。

2.資料多版本讀取

innodb 在事務支援的同時,為了保證資料的一致性已經併發時候的效能,通過對 undo

資訊,實現了資料的多版本讀取。

3.鎖定機制的改進

innodb 改變了 myisam 的鎖機制,實現了行鎖

4.實現了外來鍵

innodb 實現了外來鍵引用這一資料庫的重要特性

5.,表資料和索引資料是存放在一起,至於是每個表單獨存放還是所有表存放在一起,完全由使用者來決定(通過特定配置),同時還支援符號鏈結

innodb 的物理結構分為兩大部分:

1 、資料檔案(表資料和索引資料)

innodb 的表空間分為兩種形式。一種是共享表空間,另外一種是獨享表空間。雖然我們可以自行設定使用共享表空間還是獨享表空間來存放我們的表,但是共享表 空

間都是必須存在的,因為 innodb 的 undo 資訊和其他一些元資料資訊都是存放在共享表空 間裡面的。

當我們的檔案表空間快要用完的時候,我們必須要為其增加資料檔案,當然,只有共 享表 空 間 有 此 操 作 。

乙個較為令人頭疼的就是 innodb 在給共享表空間增加資料檔案之後,必須要重啟資料庫系統才能生效,如果是使用裸裝置,還需要有兩次重 啟 。

2 、日誌檔案

innodb 的日誌檔案和 oracle 的 redo 日誌比較類似,同樣可以設定多個日誌組(最少 2個),同樣採用輪循策略來順序的寫入 。

由於 innodb 是事務安全的儲存引擎,所以系統 crash 對他來說並不能造成非常嚴重的損失,由於有 redo 日誌的存在,有 checkpoint 機制的保護, innodb 完全可以通過 redo 日誌將資料庫 crash 時刻已經完成但還沒有來得及將資料寫入磁碟的事務恢復,也能夠將所 有部分完成並已經寫入磁碟的未完成事務回滾並將資料還原。

在 mysql 啟動引數檔案設定中, innodb 的所有引數基本上都帶有字首 「 innodb_ 」 ,不論是 innodb 資料和日誌相關,還是其他一些效能,事務等等相關的引數都是一樣。和所有innodb 相關的系統變數一樣,所有的 innodb 相關的系統狀態值也同樣全部以 「 innodb_ 」為字首。

20 筆記 MySQL學習 InnoDB儲存引擎

20.筆記 mysql學習 innodb儲存引擎 innodb儲存引擎是mysql的預設引擎。有幾項功能 n 其表在執行提交和回滾操作時是事務安全的。n 在系統崩潰後可以自動恢復 n 外來鍵和引用完整性支援,包括級聯刪除和更新 n 基於行級別的鎖定和多版本化 n 從mysql 5.6開始,innod...

Mysql中MyISAM與InnoDB引擎的區別

innodb mysql 5.5.5版本之後為預設儲存引擎。innodb 是乙個事務安全 與 acid 相容 的mysql儲存引擎,它具有提交 回滾和崩潰恢復功能來保護使用者資料。innodb 行級鎖 不公升級為更粗粒度的鎖 和 oracle風格的一致非鎖讀提高了多使用者併發性和效能。innodb ...

MySQL中MyISAM和InnoDB引擎的區別

區別 1.innodb支援事務,myisam不支援,對於innodb每一條sql語言都預設封裝成事務,自動提交,這樣會影響速度,所以最好把多條sql語言放在begin和commit之間,組成乙個事務 2.innodb支援外來鍵,而myisam不支援。對乙個包含外來鍵的innodb表轉為myisam會...