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