文章詳情頁
數(shù)據(jù)庫 - mysql如何處理數(shù)據(jù)變化中的事務(wù)?
瀏覽:82日期:2022-06-14 13:16:41
問題描述
有以下兩個事務(wù)同時commit:A: 讀取余額,減掉50,提交更新數(shù)據(jù)庫B: 讀取余額,加上50,提交數(shù)據(jù)庫
假設(shè)A,B兩事務(wù)同時提交,mysql如何保證最終結(jié)果正確?mysql默認(rèn)隔離級別為可重復(fù)讀,那么就有可能A讀到余額100元,然后更新到50;此時B執(zhí)行,B執(zhí)行完成。此時庫為150;A再提交的話就成了50,B的更新被覆蓋。。我的這個理解方式哪里有問題?mysql如何解決這個問題?
問題解答
回答1:事務(wù)這塊在程序控制,一般不要數(shù)據(jù)庫自己的事務(wù)機(jī)制
回答2:select for update,上鎖,效果就是A或B其中一個讀了余額,另外一個等待鎖讀不了余額,也就不會有后續(xù)的并發(fā)寫。
回答3:你這個不屬于事務(wù),事務(wù)是用來處理多個事件的添刪改
而你這個屬于并發(fā)。。。
只是修改一條數(shù)據(jù),不需要使用事務(wù),像你說的同時就會耗性能
相關(guān)文章:
1. MySQL數(shù)據(jù)庫中文亂碼的原因2. dockerfile - 我用docker build的時候出現(xiàn)下邊問題 麻煩幫我看一下3. angular.js - 關(guān)于$apply()4. angular.js - Ionic 集成crosswalk后生成的apk在android4.4.2上安裝失敗???5. 如何解決Centos下Docker服務(wù)啟動無響應(yīng),且輸入docker命令無響應(yīng)?6. css - C#與java開發(fā)Windows程序哪個好?7. mysql - 新浪微博中的關(guān)注功能是如何設(shè)計表結(jié)構(gòu)的?8. nignx - docker內(nèi)nginx 80端口被占用9. dockerfile - [docker build image失敗- npm install]10. angular.js使用$resource服務(wù)把數(shù)據(jù)存入mongodb的問題。
排行榜

熱門標(biāo)簽