MySQL 死鎖問題分析

huxiaobai_001發表於2020-04-09

innodb主動探知到死鎖,並回滾了某一苦苦等待的事務。問題來了,innodb是怎麼探知死鎖的?
直觀方法是在兩個事務相互等待時,當一個等待時間超過設定的某一閥值時,對其中一個事務進行回滾,另一個事務就能繼續執行。這種方法簡單有效,在innodb中,引數innodb_lock_wait_timeout用來設定超時時間,如果出現大量死鎖那麼就會造成較多的超時時間浪費,系統當然會很卡,所以分析死鎖也是一件非常重要的事情!
死鎖檢測是死鎖發生時innodb給我們的救命稻草,我們需要它,但我們更需要的是避免死鎖發生的能力,如何儘可能避免?這需要了解innodb中的鎖。
死鎖成因我就不寫了 大家去看另外一篇部落格吧:
https://www.cnblogs.com/tartis/p/9366574.h...
如何發現死鎖 如何避免死鎖 裡面寫的還是比較清晰的!

本作品採用《CC 協議》,轉載必須註明作者和本文連結

胡軍

相關文章