文章詳情頁
數據庫 - mysql如何處理數據變化中的事務?
瀏覽:130日期: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. 數組按鍵值封裝!2. docker不顯示端口映射呢?3. java - 阿里的開發手冊中為什么禁用map來作為查詢的接受類?4. java - 無法執行該操作,因為鏈接服務器 "***" 的 OLE DB 訪問接口 "SQLNCLI" 無法啟動分布式事務。解決方法?5. 主題切換問題,用過別人的webapp在后臺切換模板主題后手機端打開網頁就是切換到的主題了6. javascript - 為什么創建多行多列的表格最后只有一行內有表格7. javascript - 使用vue官方腳手架進行單元測試,如何覆蓋到watch里的變量?8. clone - git sourceTree克隆倉庫時,都不停彈出Password Required彈窗,即時輸入正確的git賬號密碼還是彈出9. javascript - webpack中alias配置中的“@”是什么意思?10. html5 - 使用echarts中的圖表 一個頁面導入了好幾個js圖表 實現echarts圖表隨著瀏覽器窗口變化而變化時出現了問題
排行榜
