mysql share mode_mysql锁:mysql lock in share mode 和 select for update
select ... lock in share mode
select ... for update
注意點(diǎn):
1.都在事務(wù)內(nèi)起作用;
2.所涉及的是行鎖(即innodb引擎);
3.保證當(dāng)前session事務(wù)所鎖定的行不會(huì)被其他session所修改(這里的修改指更新或者刪除);
4.select ... lock in share mode是共享鎖,語(yǔ)句如:select * from t where id=2 lock in share mode;
5.select ... for update是排它鎖,語(yǔ)句如:select * from t where id=2 for update;
6.共享鎖允許其他事務(wù)加共享鎖讀取,但是,不允許其他事務(wù)去做修改,或者加排它鎖,而需要注意的是共享鎖容易造成死鎖;
7.排它鎖更加嚴(yán)格,不允許其他事務(wù)加共享鎖(但可select讀該行)或者排它鎖,更加不允許其他事務(wù)修改加鎖的行。
使用情景:
1.select ... lock in share mode
保證所有人查到的數(shù)據(jù)是最新數(shù)據(jù),應(yīng)用的場(chǎng)景主從庫(kù)數(shù)據(jù)的同步;
2.select ... for update
查到的數(shù)據(jù)確保是最新數(shù)據(jù),并且查到后的數(shù)據(jù)只允許自己來(lái)修改的時(shí)候,需要用到 for update 子句,應(yīng)用的場(chǎng)景庫(kù)存,并發(fā)。
總結(jié)
以上是生活随笔為你收集整理的mysql share mode_mysql锁:mysql lock in share mode 和 select for update的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 文件名为空linux,文件系统:隐匿在L
- 下一篇: oracle sh文件怎么打开,Orac