innodb儲存引擎 checkpoint技術

2021-06-21 22:25:45 字數 1005 閱讀 8586

checkpoint(檢查點)技術的目的是解決以下幾個問題:

縮短資料庫的恢復時間;

緩衝池不夠用時,將髒頁重新整理到磁碟;

重做日誌不可用時,重新整理髒頁。

對於innodb 儲存引擎而言,其是通過lsn(log sequence number)來標記版本

的。而lsn 是8 位元組的數字,其單位是位元組。每個頁有lsn,重做日誌中也有lsn,

checkpoint 也有lsn。可以通過命令show engine innodb status 來觀察:

mysql> show engine innodb status\g;

......

---log

---log sequence number 92561351052

log flushed up to 92561351052

last checkpoint at 92561351052

......

。在innodb 儲存

引擎內部,有兩種checkpoint,分別為:

sharp checkpoint

fuzzy checkpoint

sharp checkpoint 發生在資料庫關閉時將所有的髒頁都重新整理回磁碟,這是預設的工作

方式,即引數innodb_fast_shutdown=1。

但是若資料庫在執行時也使用sharp checkpoint,那麼資料庫的可用性就會受到很大

的影響。故在innodb 儲存引擎內部使用fuzzy checkpoint 進行頁的重新整理,即只重新整理一

部分髒頁,而不是重新整理所有的髒頁回磁碟。

這裡筆者進行了概括, 在innodb 儲存引擎中可能發生如下幾種情況的fuzzy

checkpoint:

master thread checkpoint

flush_lru_list checkpoint

async/sync flush checkpoint

dirty page too much checkpoint

InnoDB 儲存引擎

innodb是事務型資料庫的首選引擎,支援事務安全表 acid 支援行鎖定和外來鍵。mysql 5.5.5 之後,innodb作為預設儲存引擎。innodb的主要特性有一下幾項。a.innodb給mysql提供了具有提交 回滾和崩潰恢復能力的事務安全 acid相容 儲存引擎。innodb鎖定在行級並...

InnoDB 儲存引擎

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

InnoDB儲存引擎

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