數據庫總是死鎖?1)以固定的順序訪問表和行比如兩個job批量更新的情形,簡單方法是對id列表先排序,後執行,這樣就避免了交叉等待鎖的情形;又比如将兩個事務的sql順序調整為一緻,也能避免死鎖,下面我們就來聊聊關于數據庫總是死鎖?接下來我們就一起去了解一下吧!
1)以固定的順序訪問表和行。比如兩個job批量更新的情形,簡單方法是對id列表先排序,後執行,這樣就避免了交叉等待鎖的情形;又比如将兩個事務的sql順序調整為一緻,也能避免死鎖。
2)大事務拆小。大事務更傾向于死鎖,如果業務允許,将大事務拆小。
3)在同一個事務中,盡可能做到一次鎖定所需要的所有資源,減少死鎖概率。
4)降低隔離級别。如果業務允許,将隔離級别調低也是較好的選擇,比如将隔離級别從RR調整為RC,可以避免掉很多因為gap鎖造成的死鎖。
5)為表添加合理的索引。可以看到如果不走索引将會為表的每一行記錄添加上鎖,死鎖的概率大大增大。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!