首頁 >資料庫 >mysql教程 >mysql死鎖是什麼意思

mysql死鎖是什麼意思

王林
王林原創
2020-06-24 15:28:503761瀏覽

mysql死鎖是指兩個或多個事務在同一資源上相互佔用,並請求鎖定對方佔用的資源,從而導致惡性循環。 InnoDB儲存引擎能偵測到死鎖的循環依賴並立即傳回一個錯誤。只有部分或完全回滾其中一個事務,才能打破死鎖。

mysql死鎖是什麼意思

什麼是死鎖?它是如何產生的?

死鎖是指兩個或多個事務在同一資源上相互佔用,並請求鎖定對方佔用的資源,從而導致惡性循環。

(推薦教學:mysql教學

當交易試圖以不同的順序鎖定資源時,就可能產生死鎖。多個事務同時鎖定同一個資源時也可能產生死鎖。

鎖定的行為和順序和儲存引擎相關。以同樣的順序執行語句,有些儲存引擎會產生死鎖有些不會-死鎖有雙重原因:真正的資料衝突;儲存引擎的實現方式。

偵測死鎖

資料庫系統實作了各種死鎖偵測和死鎖逾時的機制。 InnoDB儲存引擎能偵測到死鎖的循環依賴並立即傳回一個錯誤。

死鎖恢復

死鎖發生以後,只有部分或完全回滾其中一個事務,才能打破死鎖。

InnoDB目前處理死鎖的方法是,將持有最少行級排他鎖的交易進行回滾。所以事務型應用程式在設計時必須考慮如何處理死鎖,多數情況下只需要重新執行因死鎖回滾的事務即可。

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

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