文章詳情頁
數據庫 - mysql如何處理數據變化中的事務?
瀏覽:148日期:2022-06-14 13:16:41
問題描述
有以下兩個事務同時commit:A: 讀取余額,減掉50,提交更新數據庫B: 讀取余額,加上50,提交數據庫
假設A,B兩事務同時提交,mysql如何保證最終結果正確?mysql默認隔離級別為可重復讀,那么就有可能A讀到余額100元,然后更新到50;此時B執行,B執行完成。此時庫為150;A再提交的話就成了50,B的更新被覆蓋。。我的這個理解方式哪里有問題?mysql如何解決這個問題?
問題解答
回答1:事務這塊在程序控制,一般不要數據庫自己的事務機制
回答2:select for update,上鎖,效果就是A或B其中一個讀了余額,另外一個等待鎖讀不了余額,也就不會有后續的并發寫。
回答3:你這個不屬于事務,事務是用來處理多個事件的添刪改
而你這個屬于并發。。。
只是修改一條數據,不需要使用事務,像你說的同時就會耗性能
相關文章:
1. javascript - node引入文件路徑中的@是什么意思?2. javascript - Angular利用 broadcast和 on實現頁面跳轉并且傳遞數據 但是跳轉后收不到數據3. java - 圖片上傳后,立即訪問出現404,重新部署項目后正??梢栽L問4. css - chrome瀏覽器input記錄上次cookie信息后,有個黃色背景~如何去除!5. javascript - easyui textbox綁定onchange事件不能獲取最新的文本框的值6. javascript - Jquery click()事件的禁用7. 單元格本來是寫文字的地方插入背景圖片,這種方式正確嗎?8. html - css 文件內,有的樣式沒調用, 有沒有工具刪除這部分沒調用的內容?9. PHP類中的$this10. javascript - 請教如何獲取百度貼吧新增的兩個加密參數
排行榜
