MySQL的MVCC的用法介紹

本篇文章給大家帶來的內容是關于mysql的MVCC的用法介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

MVCC(多版本并發控制)

作用:很多情況下可以避免加鎖操作,降低開銷。

InnoDB下的MVCC

通過在每行記錄后面保存兩個隱藏的列來實現,行的創建時間、行的過期時間(刪除時間)。這里的時間指的是系統版本號,每開始一個新的事物,系統版本號都會自增。事物開始時刻的系統版本號會作為事物的版本號,用來和查詢到的每行記錄的版本號進行比較。

REPEATABLE READ隔離級別下MVCC的具體操作

SELECT

InnoDB 只查找版本早于當前事物版本的數據行(行的系統版本號

行的刪除版本要么未定義,要么大于當前事物版本號。這樣可以確保事物讀取到的行,在事物開始之前未被刪除。

符合上面兩個條件的記錄才能返回做完查詢結果。

INSERT

InnoDB 為新插入的每一行保存當前系統版本號作為行版本號。

UPDATE

InnoDB 為插入一行新記錄,保存當前系統版本號作為行版本號,同時保存當前系統版本號到原來的行作為行刪除標識。

DELETE

InnoDB 為刪除的每一行保存當前系統版本號作為刪除標識。

本篇文章到這里就已經全部結束了,更多其他精彩內容可以關注php中文網的MySQL教程視頻欄目!

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享