mysql mvcc學習總結

2021-10-25 01:41:13 字數 612 閱讀 1627

1、 mvcc(multiversion concurrency control),多版本併發控制,用來實現事務的隔離,使用mvcc本質上是為了在進行讀操作的時候代替加鎖,減少加鎖帶來的負擔。

2、適用的事務級別:read committed和repeatable read

3、資料結構:

redo log:重做日誌記錄,儲存事務操作的最新資料記錄。

undo log:撤回日誌記錄,作為資料舊版本快照供其他併發事務進行快照讀。

read_view:活躍事務鍊錶(還未提交的事務,新建事務(當前事務)與正在記憶體中commit 的事務不在活躍事務鍊錶)

對於read committed級別:每次執行select都會建立新的read_view,更新舊read_view,保證能讀取到其他事務已經commit的內容(此時也說明該級別不能防止出現不可重複讀)

對於repeatable read級別:第一次select時更新這個read_view,以後不會再更新,後續所有的select都是復用這個read_view。 所以能保證每次讀取的一致性,即都是讀取第一次讀取到的內容(此時可防止出現不可重複讀)

4、實現:在每行記錄多儲存db_trx_id(事務id)和db_roll_pt(回滾指標)兩列 

mysql mvcc知乎 mysql MVCC實現

mysql5.7 關於mvcc的官方文件14.3 innodb multi versioning dev.mysql.com 自己翻譯部分需要的資訊 innodb是乙個多版本儲存引擎 它儲存了修改記錄的歷史版本資訊,以便支援事務的併發和回滾功能。這些資訊儲存在表空間的回滾字段中。innodb使用回滾...

mysql mvcc知識點總結

atomicity 原子性 指整個操作要麼都成功,要麼都失敗,不能有些操作成功有些操作失敗。consistency 一致性 指事務的執行結果必須使資料庫從乙個一致性到另乙個一致性狀態。什麼是不一致性狀態?就是當乙個事務因某種原因中斷時,這個事務對資料庫的一些操作被寫入到了資料庫,這是資料庫就是一種不...

MySQL MVCC 深入解析

mvcc,multi version concurrency control,多版本併發控制,是mysql的預設儲存引擎innodb實現隔離級別的一種具體方式,能夠實現提交讀 read committed和可重複讀 repeatable read兩種隔離級別。mvcc指的就是在使用 read com...