91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql死鎖的檢測方法

發布時間:2021-06-23 15:09:42 來源:億速云 閱讀:269 作者:chen 欄目:編程語言

本篇內容介紹了“mysql死鎖的檢測方法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

說明

1、檢測死鎖:數據庫系統實現了各種死鎖檢測和死鎖超時機制。InnoDB存儲引擎可以檢測到死鎖的循環依賴,并立即返回錯誤。

2、外部鎖的死鎖檢測:發生死鎖后,InnoDB一般自動檢查,一個事務釋放鎖后退,另一個事務獲得鎖,繼續完成事務。但是,如果涉及外部鎖或表部鎖,InnoDB不能完全自動檢測死鎖,則需要設置鎖等待超時參數innodb_lock_wait_timeout來解決。

實例

在innodb源代碼lock/lock0lock.c文件中,定義了兩個常量:

/* Restricts the length of search we will do in the waits-for
 
     graph of transactions */
 
#define LOCK_MAX_N_STEPS_IN_DEADLOCK_CHECK 1000000
 
 
 
/* Restricts the recursion depth of the search we will do in the waits-for
 
    graph of transactions */
 
#define LOCK_MAX_DEPTH_IN_DEADLOCK_CHECK 200
 
然后在檢查是否產生死鎖的函數lock_deadlock_occurs()中有如下代碼:
 
 
 
ret = lock_deadlock_recursive(trx, trx, lock, &cost, 0);
 
switch (ret) {
 
case LOCK_EXCEED_MAX_DEPTH:
 
        產生死鎖
        ...
 
        break;
 
}
 
其中的lock_deadlock_recursive()函數是遞歸函數,它會檢查自身遞歸深度,其中有如下代碼:
 
 
 
ibool   too_far
 
   = depth > LOCK_MAX_DEPTH_IN_DEADLOCK_CHECK
 
|| *cost > LOCK_MAX_N_STEPS_IN_DEADLOCK_CHECK;
 
...
 
if (too_far) {
 
                return(LOCK_EXCEED_MAX_DEPTH);
 
            }

“mysql死鎖的檢測方法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新安县| 大足县| 靖西县| 玛曲县| 疏勒县| 从江县| 全南县| 梨树县| 临汾市| 远安县| 杭锦旗| 贵溪市| 北辰区| 乐昌市| 乡城县| 西城区| 萝北县| 安陆市| 陆川县| 太白县| 泾源县| 巍山| 民丰县| 横山县| 应用必备| 房产| 安龙县| 韶关市| 禹州市| 招远市| 金乡县| 兖州市| 肇源县| 海晏县| 福清市| 大同市| 郴州市| 靖州| 永新县| 江达县| 康平县|