av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

事務(wù) - mysql共享鎖lock in share mode的實(shí)際使用場景

瀏覽:97日期:2022-06-14 10:09:17

問題描述

看了MySQL的官方文檔: 關(guān)于鎖定對(duì)象的部分

分兩種鎖共享鎖: SELECT ... LOCK IN SHARE MODE排它鎖: SELECT ... FOR UPDATE

其中排他鎖這個(gè)場景大家都知道, 就是多個(gè)session的事務(wù)要對(duì)同一個(gè)表的一/多條數(shù)據(jù)進(jìn)行更新操作的時(shí)候, 要先鎖定再更新來消除并發(fā)造成的數(shù)據(jù)不一致

而共享鎖的使用場景說的有主-從表的這種情況, 比如想在從表insert一條記錄, 需要先將主表相關(guān)的數(shù)據(jù)加S鎖鎖定, 然后再insert從表, 來實(shí)現(xiàn)主從表數(shù)據(jù)一致性, 即有可能其他session會(huì)再此時(shí)delete主表的這條數(shù)據(jù)而造成只有從表有數(shù)據(jù)而主表無數(shù)據(jù)的數(shù)據(jù)不一致結(jié)果

但是顯示加S鎖容易造成deadLock, 即session1在數(shù)據(jù)加S鎖, 然后session2在相同數(shù)據(jù)也加S鎖, 然后同時(shí)update, 必然會(huì)導(dǎo)致其中一個(gè)session的事務(wù)監(jiān)測到deadlock,而終止事務(wù)

本來他的使用場景是主-從表的情況, 但是實(shí)際場景可能錯(cuò)綜復(fù)雜, 這兩種場景都是涉及, 那么手動(dòng)加共享鎖的是否還有必要呢???? 是否說明實(shí)際中不會(huì)使用這項(xiàng)技術(shù)呢?

問題解答

回答1:

確實(shí)是這樣的,LOCK IN SHARE MODE是讀鎖(只是不讓別人寫),F(xiàn)OR UPDATE是寫鎖(還不讓別人加讀鎖),讀鎖升級(jí)成寫鎖是可能產(chǎn)生死鎖的(但寫鎖降級(jí)成讀鎖則不會(huì),我還真不知道MySQL如何對(duì)鎖降級(jí)),所以程序中需要考慮超時(shí)的問題(或者重試或者放棄)。

所以大部分情況下都如果SELECT后接下來會(huì)有UPDATE動(dòng)作的話,一般會(huì)用FOR UPDATE而不是LOCK IN SHARE MODE。

相關(guān)文章:
主站蜘蛛池模板: 久久在线 | 日日干日日操 | 一区二区不卡 | 精品久久精品 | ww 255hh 在线观看 | 午夜影院在线观看 | 国产精品色一区二区三区 | 精品国产乱码久久久久久久久 | 亚洲三级国产 | 亚洲精品一二三 | 麻豆av片 | 亚洲精品456 | 亚洲欧洲成人 | 成人日批视频 | 亚洲www | 成人妇女免费播放久久久 | 一级毛片视频在线 | 国产亚洲欧美在线视频 | 亚洲一区视频在线 | 国产一区二区三区 | 午夜精品久久 | 久久久久久久99 | 久久免费看 | 日韩精品在线网站 | h片在线免费看 | 欧美三级免费观看 | 亚洲成av | 日韩视频免费 | 国产高清免费视频 | 亚洲综合无码一区二区 | 中文字幕av一区二区三区 | 欧美一区日韩一区 | 国产不卡在线观看 | 91精品久久久久久久久久入口 | 一级毛片在线播放 | 中文字幕在线看人 | 国产精品久久 | 无码日韩精品一区二区免费 | 国产精品久久久久久 | 精品成人免费一区二区在线播放 | 久久高清亚洲 |