一個mysql死鎖問題

一般死鎖都是不同業務之間AB, BA 加鎖順序不同導致死鎖. 今天遇到同一個業務死鎖

找到導致死鎖的代碼, 大概是:

insert into XXX

update XXX where YYY_id = 1;


XXX表只有一個主鍵索引id

insert 語句對id索引加行鎖

update語句全表加鎖


如果兩個業務同時運行, 兩個業務行鎖都成功, 但是加全表鎖的時候會失敗, 然後強制死掉一個, 另外一個會成功


解決辦法:

YYY_id 加上索引

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章