首頁 >資料庫 >mysql教程 >mysql死鎖怎麼解決?

mysql死鎖怎麼解決?

青灯夜游
青灯夜游原創
2019-05-22 18:36:2412252瀏覽

mysql死鎖的解決發方法:1、等待,直到逾時(innodb_lock_wait_timeout=50s),自動回滾事務;2、發起死鎖偵測,主動回滾一則事務,讓其他事務繼續執行( innodb_deadlock_detect=on)。

mysql死鎖怎麼解決?

MySQL有兩種死鎖處理方式:

● 等待,直到逾時(innodb_lock_wait_timeout=50s),自動回滾事務。

● 發起死鎖偵測,主動回滾一則事務,讓其他事務繼續執行(innodb_deadlock_detect=on)。

由於效能原因,一般都是使用死鎖偵測來進行處理死鎖。

死鎖偵測

死鎖偵測的原理是建構一個以交易為頂點、鎖為邊的有向圖,判斷有向圖是否存在環,存在即有死鎖。

回滾

偵測到死鎖之後,選擇插入更新或刪除的行數最少的交易回滾,基於 INFORMATION_SCHEMA.INNODB_TRX 表中的 trx_weight 欄位來判斷。

以上是mysql死鎖怎麼解決?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn