文章詳情頁
數(shù)據(jù)庫 - mysql如何處理數(shù)據(jù)變化中的事務(wù)?
瀏覽:210日期: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)隔離級別為可重復(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è)等待鎖讀不了余額,也就不會有后續(xù)的并發(fā)寫。
回答3:你這個(gè)不屬于事務(wù),事務(wù)是用來處理多個(gè)事件的添刪改
而你這個(gè)屬于并發(fā)。。。
只是修改一條數(shù)據(jù),不需要使用事務(wù),像你說的同時(shí)就會耗性能
相關(guān)文章:
1. javascript - node得到req不能得到boolean2. node.js - nodejs+express+vue3. 數(shù)據(jù)庫 - Mysql的存儲過程真的是個(gè)坑!求助下面的存儲過程哪里錯(cuò)啦,實(shí)在是找不到哪里的問題了。4. mysql時(shí)間格式問題5. javascript - 我的站點(diǎn)貌似被別人克隆了, google 搜索特定文章,除了域名不一樣,其他的都一樣,如何解決?6. python對8000行csv添加列7. DADB.class.php文件的代碼怎么寫8. 使用mysql命令行連接遠(yuǎn)程數(shù)據(jù)庫host跳轉(zhuǎn)9. java - web端百度網(wǎng)盤的一個(gè)操作為什么要分兩次請求服務(wù)器, 有什么好處嗎10. python 字符串匹配問題
排行榜

熱門標(biāo)簽
網(wǎng)公網(wǎng)安備