您好,登錄后才能下訂單哦!
本文主要給大家簡單講講MySQL中MVCC有哪些用法,相關專業術語大家可以上網查查或者找一些相關書籍補充一下,這里就不涉獵了,我們就直奔主題吧,希望MySQL中MVCC有哪些用法這篇文章可以給大家帶來一些實際幫助。
MVCC(多版本并發控制)
作用:很多情況下可以避免加鎖操作,降低開銷。
InnoDB下的MVCC
通過在每行記錄后面保存兩個隱藏的列來實現,行的創建時間、行的過期時間(刪除時間)。這里的時間指的是系統版本號,每開始一個新的事物,系統版本號都會自增。事物開始時刻的系統版本號會作為事物的版本號,用來和查詢到的每行記錄的版本號進行比較。
REPEATABLE READ隔離級別下MVCC的具體操作
SELECT
InnoDB 只查找版本早于當前事物版本的數據行(行的系統版本號 <= 事物的系統版本號),這樣可以確保事物讀取的行,要么是在事物開始前已經存在的,要么是事物自身插入或者修改過的。(也就是和其它事物是隔離的)
行的刪除版本要么未定義,要么大于當前事物版本號。這樣可以確保事物讀取到的行,在事物開始之前未被刪除。
符合上面兩個條件的記錄才能返回做完查詢結果。
INSERT
InnoDB 為新插入的每一行保存當前系統版本號作為行版本號。
UPDATE
InnoDB 為插入一行新記錄,保存當前系統版本號作為行版本號,同時保存當前系統版本號到原來的行作為行刪除標識。
DELETE
InnoDB 為刪除的每一行保存當前系統版本號作為刪除標識。
MySQL中MVCC有哪些用法就先給大家講到這里,對于其它相關問題大家想要了解的可以持續關注我們的行業資訊。我們的板塊內容每天都會捕捉一些行業新聞及專業知識分享給大家的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。