文章詳情頁
數(shù)據(jù)庫 - mysql如何處理數(shù)據(jù)變化中的事務(wù)?
瀏覽:124日期:2022-06-14 13:16:41
問題描述
有以下兩個(gè)事務(wù)同時(shí)commit:A: 讀取余額,減掉50,提交更新數(shù)據(jù)庫B: 讀取余額,加上50,提交數(shù)據(jù)庫
假設(shè)A,B兩事務(wù)同時(shí)提交,mysql如何保證最終結(jié)果正確?mysql默認(rèn)隔離級(jí)別為可重復(fù)讀,那么就有可能A讀到余額100元,然后更新到50;此時(shí)B執(zhí)行,B執(zhí)行完成。此時(shí)庫為150;A再提交的話就成了50,B的更新被覆蓋。。我的這個(gè)理解方式哪里有問題?mysql如何解決這個(gè)問題?
問題解答
回答1:事務(wù)這塊在程序控制,一般不要數(shù)據(jù)庫自己的事務(wù)機(jī)制
回答2:select for update,上鎖,效果就是A或B其中一個(gè)讀了余額,另外一個(gè)等待鎖讀不了余額,也就不會(huì)有后續(xù)的并發(fā)寫。
回答3:你這個(gè)不屬于事務(wù),事務(wù)是用來處理多個(gè)事件的添刪改
而你這個(gè)屬于并發(fā)。。。
只是修改一條數(shù)據(jù),不需要使用事務(wù),像你說的同時(shí)就會(huì)耗性能
相關(guān)文章:
1. 關(guān)于nginx location配置的問題,root到底是什么2. docker鏡像push報(bào)錯(cuò)3. angular.js - angular內(nèi)容過長(zhǎng)展開收起效果4. 關(guān)于docker下的nginx壓力測(cè)試5. angular.js - angularjs的自定義過濾器如何給文字加顏色?6. python 怎樣用pickle保存類的實(shí)例?7. 大家好,請(qǐng)問在python腳本中怎么用virtualenv激活指定的環(huán)境?8. python的前景到底有大?如果不考慮數(shù)據(jù)挖掘,機(jī)器學(xué)習(xí)這塊?9. 并發(fā)模型 - python將進(jìn)程池放在裝飾器里為什么不生效也沒報(bào)錯(cuò)10. python2安裝失敗
排行榜

熱門標(biāo)簽