SQL語句總結(jié)----并發(fā)控制(持續(xù)更新)

SQL使用資源鎖定的方式管理用戶的并發(fā)操作:

  1. 樂觀并發(fā)控制:假定用戶之間不太可能發(fā)生資源沖突,允許用戶在不鎖定任何資源的情況下執(zhí)行事務(wù),只有當(dāng)用戶試圖修改數(shù)據(jù)時才檢查資源是否沖突,需要使用游標(biāo)。
  2. 悲觀并發(fā)控制:根據(jù)需要在事務(wù)的持續(xù)時間內(nèi)鎖定資源,從而確保事務(wù)的完整性和數(shù)據(jù)庫的一致性(默認(rèn))

基本鎖:

一般更新模式由一個事物組成,該事務(wù)先讀取記錄,獲得資源的共享鎖,然后修改記錄,次操作要求鎖轉(zhuǎn)換為排它鎖

  1. 共享鎖(S鎖 Share lock)
    用于只讀數(shù)據(jù)操作,它允許多個并發(fā)事務(wù)對資源鎖定進(jìn)行讀取,但禁止其他事務(wù)對鎖定資源進(jìn)行修改操作。
  2. 排他鎖(X鎖 eXclusive lock)
    它鎖定的資源不能被其他并發(fā)事務(wù)再進(jìn)行任何鎖定,所以其他事務(wù)不能讀取和修改鎖定的資源用于自己數(shù)據(jù)的修改。


    image.png

三級封鎖協(xié)議:

  1. 一級封鎖協(xié)議
    事務(wù)T在修改數(shù)據(jù)R之前必須先對其加X鎖,直到事務(wù)結(jié)束才釋放,結(jié)束包括正常結(jié)束與非正常結(jié)束。
    可以防止丟失修改,并保證事務(wù)T是可以恢復(fù)的,但是不能保證可重復(fù)讀和不讀的臟數(shù)據(jù)。
  2. 二級封鎖協(xié)議
    一級封鎖協(xié)議+事務(wù)T在讀取數(shù)據(jù)R前必須先加S鎖,讀完后即可釋放S鎖
    可以防止丟失修改,還可以進(jìn)一步防止讀“臟數(shù)據(jù)”,不能保證可重復(fù)讀
  3. 三級封鎖協(xié)議
    一級封鎖協(xié)議+事務(wù)T在讀取數(shù)據(jù)R前必須先加S鎖,直到事務(wù)結(jié)束才能釋放。
    可以防止丟失修改,讀“臟數(shù)據(jù)”和不可重復(fù)讀
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 數(shù)據(jù)庫范式 https://www.zhihu.com/question/24696366 索引 索引可以加快數(shù)據(jù)...
    EakonZhao閱讀 3,402評論 3 23
  • 事務(wù)的定義 事務(wù)由單獨單元的一個或多個SQL語句組成,在這個單元中,每個MySQL語句是相互依賴的。而整個單獨單元...
    諸葛堅強閱讀 1,193評論 0 3
  • 本文在學(xué)習(xí)了數(shù)據(jù)庫庫理論后的一個總結(jié),以加深理解、形成知識架構(gòu)和方便日后復(fù)習(xí) 本文大部分(包括文章框架、內(nèi)容和圖片...
    stoneyang94閱讀 1,254評論 0 2
  • 廣州的午夜,霓虹燈閃爍在黑夜里,誰家的燈光還未熄滅,路燈一列列的站著,籠罩著路上的行人。 夜公交的空調(diào)發(fā)出很大的響...
    府羅將相閱讀 521評論 0 0
  • 標(biāo)題是在一篇文章里看到的一句話,這也恰恰和叔叔教我的凡事要力爭上游不謀而合。然而呢,我并沒有做到。 我始終堅信,一...
    本姑娘之音閱讀 810評論 0 1

友情鏈接更多精彩內(nèi)容