1. 程式人生 > >關於在專案中遇到MySQL資料庫死鎖的問題

關於在專案中遇到MySQL資料庫死鎖的問題

在MySQL中, 當一個事務去更新某條資料, 還沒有提交的時候, 第二個事務去更新該資料, 則會出現等待獲取鎖超時異常:

>>  Lock wait timeout exceeded; try restarting transaction

此異常時由於在處理業務邏輯時, 第一條事務既沒有提交, 也沒有回滾引起的, 當出現該異常時, 則應該去查詢專案中有哪些地方可能出現該問題.

通常情況下, 可能導致該問題的程式碼都是手動建立事務, 然後commitrollback的處理沒有處理好, 所以更加提倡, 在專案中使用spring的宣告式事務註解@Transactional

處理事務, 降低出現該情況的風險.