Mysql 并發(fā)事務帶來的問題

并發(fā)事務帶來的問題

針對 mysql InnoDB

編號 問題 描述
1 臟讀
2 不可重復讀
3 幻讀
4 丟失更新 兩個事務同時修改1 條記錄,事務 A 的修改覆蓋事務 B 的修改。

丟失更新

事務 A 事務 B
begin;
int b = select money from t where id = 0;//b 開始是 1
b = b+1;
update t set money = b where id =0;
begin;
int b = select money from t where id = 0;//這里讀到是 1
b = b+2;
commit;//b=2
update t set money = b where id =0;
commit;//覆蓋 A 事務的 2,變成了 3

InnoDB默認的隔離級別 可重復讀 RR + next-key Lock 解決了上面的 1~3 的問題,那丟失更新的解決方法如下:

  1. 通過悲觀鎖,通過 select xxx for update 加 X 鎖
  2. 通過樂觀鎖(CAS), 記錄加多一個版本號,查詢時記錄下來,更新的時候做比較,不等于是重復執(zhí)行
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

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

  • 1.A simple master-to-slave replication is currently being...
    Kevin關大大閱讀 6,253評論 0 3
  • 事務的定義 事務由單獨單元的一個或多個SQL語句組成,在這個單元中,每個MySQL語句是相互依賴的。而整個單獨單元...
    諸葛堅強閱讀 1,193評論 0 3
  • 索引 數(shù)據(jù)庫中的查詢操作非常普遍,索引就是提升查找速度的一種手段 索引的類型 從數(shù)據(jù)結構角度分 1.B+索引:傳統(tǒng)...
    一凡呀閱讀 3,217評論 0 8
  • 以前,我曾喜歡過一個女孩,那還是高二的時候,現(xiàn)在我們是好朋友,而且學校隔得很近,也就是兩條街吧。雖然她長得不是最...
    伱素莪心厎最獨特噠侟在閱讀 208評論 0 1
  • 古塔的聲音 ——致嵩岳寺塔 文/春兒 你,挺直的脊梁從不曾彎曲 屹立在風風雨...
    幸福依然春兒閱讀 197評論 0 4

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