並發更新引發的死鎖問題


問題1:

最近看到一條面試題:並發更新同一條記錄如何解決事務死鎖?

參考:並發更新引發的死鎖問題排查

解決方法:高並發程序,都不應該存在僅根據非主鍵的幾個字段一查就要update/delete的場景。即使有,也應該改為先把要更新的記錄查出來然后逐條按主鍵id更新。

 

問題2:

參考:並行事務同時更新同一條記錄

最后,總結並行事務第一個事務會鎖住更新的記錄,下一個事務操作(更新或刪除)該記錄時排隊等待上一個事務釋放鎖,如果等待過長會取消操作,並且拋出異常,捕獲異常進行相應的操作回滾事務或關閉連接釋放鎖,不然會導致死鎖。並且上一個事務提交之后,下一個事務的回滾不會影響到上一個事務的操作。

 

 

測試問題1

測試事務死鎖

 

 

每次插入數據插入200條數據 username=test

 

 

都是for循環修改那200條數據

 

異常信息:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM