mysql死鎖的原因及解決方法
mysql死鎖的原因及解決方法如下:
1、一個用戶A訪問表A(鎖住了表A),然後又訪問表B;另一個用戶B 訪問表B(鎖住了表B),然後企圖訪問表A;這時用戶A由於用戶B已經鎖住表B,它必須等待用戶B釋放表B才能繼續,同樣用戶B要等用戶A釋放表A才能繼續,這就死鎖就產生了。解決方法爲:這種死鎖比較常見,是由於程序的BUG產生的,除了調整的程序的邏輯沒有其它的辦法。仔細分析程序的邏輯,對於數據庫的多表操作時,儘量按照相同的順序進 行處理,儘量避免同時鎖定兩個資源,如操作A和B兩張表時,總是按先A後B的順序處理, 必須同時鎖定兩個資源時,要保證在任何時刻都應該按照相同的順序來鎖定資源。
2、用戶A查詢一條紀錄,然後修改該條紀錄;這時用戶B修改該條紀錄,這時用戶A的事務裏鎖的性質由查詢的共享鎖企圖上升到獨佔鎖,而用戶B裏的獨佔鎖由於A 有共享鎖存在所以必須等A釋放掉共享鎖,而A由於B的獨佔鎖而無法上升的獨佔鎖也就不可能釋放共享鎖,於是出現了死鎖。這種死鎖比較隱蔽,但在稍大點的項 目中經常發生。如在某項目中,頁面上的按鈕點擊後,沒有使按鈕立刻失效,使得用戶會多次快速點擊同一按鈕,這樣同一段代碼對數據庫同一條記錄進行多次操 作,很容易就出現這種死鎖的情況。解決方法爲:對於按鈕等控件,點擊後使其立刻失效,不讓用戶重複點擊,避免對同時對同一條記錄操作。
-
微信羣裏怎麼拍一拍,具體操作步驟
1、操作步驟:首先打開手機上的【微信】。2、打開微信之後,我們點擊打開羣好友【聊天窗口】。3、打開聊天窗口後,我們快速雙擊【好友的頭像】。4、雙擊好友後,對方就收到消息【拍了拍你】雙方的聊天窗口都會有提示。...
-
微博怎麼顯示手機型號,微博如何顯示手機型號
微博怎麼顯示手機型號:1、首先需要點擊手機桌面中的微博。2、然後再點擊屏幕右下方的我的。3、然後再點擊屏幕上方的設置圖標。4、然後再點擊會員專屬設置。5、然後再點擊微博來源。6、最後選擇想要顯示的手機型號就可以了。...
-
手機呼叫失敗是怎麼了
手機網絡衝突、處於飛行模式、手機信號不好、網絡設置不對或者是電話卡出現問題以及手機硬件有故障都會導致手機呼叫失敗,我們需要找出手機呼叫失敗的原因,然後再有針對性的去解決問題。如果我們不小心點開了手機的【飛行模式】,那麼就無法撥打電話了,要馬上把手機...
-
載人火箭頂部有一個尖頂叫什麼塔
1、載人火箭頂部有一個尖頂叫逃逸塔,又名逃生塔,裝在飛船頂端,從遠處看像是火箭上的避雷針,與一般火箭圓錐形的頭部很不相同。2、由塔架、逃逸發動機和分離發動機(均爲固體火箭發動機)組成,發生緊急情況時,逃逸發動機迅速點火,使航天員座艙(返回艙)與固體火箭分離,迅速脫離...