小編給大家分享一下RR與RC隔離級別下MySQL不同的加鎖解鎖方式有哪些,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
| RC與RR隔離級別下MySQL不同的加鎖解鎖方式
MySQL5.7.21
數據準備
確認隔離級別
同時開啟兩個會話,按下圖的流程開始操作。
3.1 半一致讀發生條件
innodb_locks_unsafe_for_binlog默認為off。
如果設置為1,會禁用gap鎖,但對于外鍵沖突檢測(foreign-key constraint checking)或者重復鍵檢測(duplicate-key checking)還是會用到gap鎖。
啟用innodb_locks_unsafe_for_binlog產生的影響等同于將隔離級別設置為RC,不同之處是:
1)innodb_locks_unsafe_for_binlog是全局參數,影響所有session;但隔離級別可以是全局也可以是會話級別。
2)innodb_locks_unsafe_for_binlog只能在數據庫啟動的時候設置;但隔離級別可以隨時更改。
基于上述原因,RC相比于innodb_locks_unsafe_for_binlog會更好更靈活。
啟用innodb_locks_unsafe_for_binlog還有以下作用:
環境準備
開始操作
注:過程現象滿足RR隔離級別,也符合設置innodb_locks_unsafe_for_binlog=ON的情況。因為前面所講的啟用innodb_locks_unsafe_for_binlog會產生作用1與作用2,所以整個加鎖與解鎖情況與RC隔離級別類似。
看完了這篇文章,相信你對“RR與RC隔離級別下MySQL不同的加鎖解鎖方式有哪些”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。