中并發(fā)控制(數(shù)據(jù)庫)

什么叫中等并發(fā)?不是高并發(fā),不是低并發(fā)

并發(fā)度 說明 舉?? 典型方案
高并發(fā) 短時間內(nèi)的大量并發(fā)沖突 秒殺活動 redis緩存 + 串行化 + 異步
低并發(fā) TPS很低。基本沒有并發(fā)沖突 后臺配置系統(tǒng) 不需要處理/悲觀鎖/樂觀鎖
中并發(fā) TPS比較平均,且有一定的并發(fā)沖突。 一般性的事務(wù)性系統(tǒng)。訂單,庫存,支付 下面詳細(xì)介紹

并發(fā)需要解決的兩大問題:

  1. 競態(tài)條件


    競態(tài)條件.jpg

并發(fā)策略

策略 舉?? 并發(fā)度
帶邊界更新 update inventory set stock = stock - 1 where stock > 0 ****
CAS update order set status = 'confirmed' where status = 'init' ***
版本號 update user set age = 18, version = version + 1 where version = ? **
悲觀鎖 select for update/update/delete *
  1. 冪等


    冪等.jpg

冪等策略

場景 策略 舉??
插入冪等 檢測duplicated key沖突 unique key(ordersn); insert into order(ordersn, ...) values ('SNXXX1', ...)
刪除冪等 天然冪等 delete from order where ordersn = 1
更新冪等 更新失敗后檢測值 update order set status = 'confirmd' where status = 'init'; if updated = 0; select status from order; if status = 'confirmed' return true
更新冪等 帶外部流水號,插入日志表,檢測duplicated key沖突 insert into order_action(sequence, ...) values('流水號',...); update order set status = 'confirmd' where status = 'init';
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 協(xié)調(diào)多用戶數(shù)據(jù)庫系統(tǒng)中事務(wù)的同時執(zhí)行被稱為并發(fā)控制。并發(fā)控制的目的是確保多用戶數(shù)據(jù)庫環(huán)境中事務(wù)的可序列化性。為了實...
    ebook_sea閱讀 1,164評論 0 0
  • 久違的晴天,家長會。 家長大會開好到教室時,離放學(xué)已經(jīng)沒多少時間了。班主任說已經(jīng)安排了三個家長分享經(jīng)驗。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,867評論 16 22
  • 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友。感恩相遇!感恩不離不棄。 中午開了第一次的黨會,身份的轉(zhuǎn)變要...
    余生動聽閱讀 10,912評論 0 11
  • 可愛進(jìn)取,孤獨(dú)成精。努力飛翔,天堂翱翔。戰(zhàn)爭美好,孤獨(dú)進(jìn)取。膽大飛翔,成就輝煌。努力進(jìn)取,遙望,和諧家園。可愛游走...
    趙原野閱讀 3,542評論 1 1
  • 在妖界我有個名頭叫胡百曉,無論是何事,只要找到胡百曉即可有解決的辦法。因為是只狐貍大家以訛傳訛叫我“傾城百曉”,...
    貓九0110閱讀 3,728評論 7 3

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