我們都知道 MySQL 是支持多事務併發執行的,否則一個事務一個事務串列化處理,用戶都要砸鍵盤了。那麼,多個事務同時寫一行數據怎麼處理?一個事務在寫數據的時候,另一個事務要讀,又該怎麼處理這個衝突?為瞭解決這些問題,MySQL 使用了 MVCC 多版本控制機制、事務隔離機制、鎖。 ...
我們都知道 MySQL 是支持多事務併發執行的,否則一個事務一個事務串列化處理,用戶都要砸鍵盤了。那麼,多個事務同時寫一行數據怎麼處理?一個事務在寫數據的時候,另一個事務要讀,又該怎麼處理這個衝突?為瞭解決這些問題,MySQL 使用了 MVCC 多版本控制機制、事務隔離機制、鎖。
最耳熟能詳的就是,事務可以分成 4 個隔離級別:讀未提交、讀已提交、可重覆讀、串列化。用的最多的就是 InnoDB 預設的隔離級別——是可重覆讀 REPEATABLE READ,一般會叫它的縮寫「RR」。