樂(lè)觀鎖和悲觀鎖

數(shù)據(jù)庫(kù)管理系統(tǒng)中的并發(fā)控制的任務(wù)是確保在多個(gè)事務(wù)同事存取數(shù)據(jù)庫(kù)中同一數(shù)據(jù)時(shí)不破壞事務(wù)的隔離性和統(tǒng)一性以及數(shù)據(jù)庫(kù)的統(tǒng)一性偏序。

樂(lè)觀鎖(Optimistic Locking)

  • 顧名思義,樂(lè)觀鎖表示看待事物比較樂(lè)觀泵殴,默認(rèn)當(dāng)A修改某條數(shù)據(jù)的時(shí)候,不會(huì)有B來(lái)修改這條數(shù)據(jù)单寂,常表現(xiàn)在提交修改的時(shí)候進(jìn)行鎖數(shù)據(jù)贬芥,修改完后解除鎖。
    通常情況下配合版本號(hào)version進(jìn)行使用
    例如更新庫(kù)存操作宣决,從10更新到9:
update sku set qty=9,version=2 where id = 1 and version=1
更新成功則成功蘸劈,否則拋出錯(cuò)誤異常

悲觀鎖(Pessimistic Lock)

  • 顧名思義,悲觀鎖表示一個(gè)人看待事物比較悲觀尊沸,默認(rèn)當(dāng)A來(lái)修改某條數(shù)據(jù)的時(shí)候威沫,會(huì)有其他的人來(lái)修改,因此常表現(xiàn)在查詢的時(shí)候就把數(shù)據(jù)鎖定椒丧,修改完后解除鎖壹甥。
    思路:
    1.查詢時(shí)候加鎖----對(duì)記錄修改之前
    2.加鎖失敗救巷,拋出錯(cuò)誤
    3.加鎖成功壶熏,修改數(shù)據(jù)
    4.成功,解鎖浦译;失敗棒假,拋異常,解鎖
$db->autocommit(false); // 開(kāi)始事務(wù)
select * from 表明 where 查詢條件 for  update; // 修改前的查詢鎖表
update ..........;// 修改
if(修改成功的判斷) { 
    $db->commit();
} else {
    $db->rollback();
}

選擇性使用

1.樂(lè)觀鎖并沒(méi)有真正的加鎖精盅,因此效率高一些帽哑,但更新失敗的幾率也會(huì)大,并發(fā)量高的時(shí)候業(yè)務(wù)失敗的幾率會(huì)大很多叹俏。
2.悲觀鎖是對(duì)數(shù)據(jù)庫(kù)上鎖妻枕,高并發(fā)會(huì)導(dǎo)致數(shù)據(jù)庫(kù)卡頓,進(jìn)而導(dǎo)致服務(wù)器卡頓粘驰,更新的效率比較低屡谐,但業(yè)務(wù)失敗率略低。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蝌数,一起剝皮案震驚了整個(gè)濱河市愕掏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌顶伞,老刑警劉巖饵撑,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異唆貌,居然都是意外死亡滑潘,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門锨咙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)语卤,“玉大人,你說(shuō)我怎么就攤上這事×宦拢” “怎么了羊壹?”我有些...
    開(kāi)封第一講書人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)齐婴。 經(jīng)常有香客問(wèn)我油猫,道長(zhǎng),這世上最難降的妖魔是什么柠偶? 我笑而不...
    開(kāi)封第一講書人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任情妖,我火速辦了婚禮,結(jié)果婚禮上诱担,老公的妹妹穿的比我還像新娘毡证。我一直安慰自己,他們只是感情好蔫仙,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布料睛。 她就那樣靜靜地躺著,像睡著了一般摇邦。 火紅的嫁衣襯著肌膚如雪恤煞。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 50,084評(píng)論 1 291
  • 那天施籍,我揣著相機(jī)與錄音居扒,去河邊找鬼。 笑死丑慎,一個(gè)胖子當(dāng)著我的面吹牛喜喂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播竿裂,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼玉吁,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了铛绰?” 一聲冷哼從身側(cè)響起诈茧,我...
    開(kāi)封第一講書人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎捂掰,沒(méi)想到半個(gè)月后敢会,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡这嚣,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年鸥昏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片姐帚。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吏垮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情膳汪,我是刑警寧澤唯蝶,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布,位于F島的核電站遗嗽,受9級(jí)特大地震影響粘我,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜痹换,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一征字、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧娇豫,春花似錦匙姜、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至系羞,卻和暖如春郭计,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背椒振。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留梧乘,地道東北人澎迎。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像选调,于是被迫代替她去往敵國(guó)和親夹供。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351