參考鏈接:http://blog.csdn.net/qwe6112071/article/details/50840870
1.死鎖
1.1產生過程:多事務鎖定一個資源->試圖去鎖定對方已鎖定的資源->多事務處于等待對方釋放鎖資源狀態,示意圖如下所示:
1.2 防止方法
合理安排表訪問順序
對事務要求不高,允許臟讀(不加鎖)
錯開多事務訪問相同資源的時間
使用盡可能低的事務隔離級別
使用短事務(操作盡可能少,時間盡可能短)
將大事務分解成多個小事務順序執行
2.悲觀鎖與悲觀鎖
悲觀鎖:顯式為數據加鎖,常見有如下兩種加鎖方式
顯式指定獨占鎖:select … for update
在數據庫增加表明狀態的LOCK字段
樂觀鎖:通過版本控制實現,示意圖如下所示:
通過樂觀鎖的版本控制,我們能夠更好地提高并發事務的性能。