溫馨提示×

溫馨提示×

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

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

Mysql-InnoDB鎖的示例分析

發布時間:2020-12-03 10:35:45 來源:億速云 閱讀:138 作者:小新 欄目:MySQL數據庫

小編給大家分享一下Mysql-InnoDB鎖的示例分析,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

鎖類型

行級鎖

鎖模式只有LOCK_S 和LOCK_X,其他的 FLAG 用于鎖的描述,如前述 LOCK_GAP、LOCK_REC_NOT_GAP 以及 LOCK_ORDINARY、LOCK_INSERT_INTENTION 四種描述。(相關推薦:MySQL教程)

LOCK_REC_NOT_GAP

LOCK_GAP

LOCK_ORDINARY(Next-Key Lock)

LOCK_INSERT_INTENTION

static const byte lock_compatibility_matrix[5][5] = {
/** IS IX S X AI /
/ IS / { TRUE, TRUE, TRUE, FALSE, TRUE},
/ IX / { TRUE, TRUE, FALSE, FALSE, TRUE},
/ S / { TRUE, FALSE, TRUE, FALSE, FALSE},
/ X / { FALSE, FALSE, FALSE, FALSE, FALSE},
/ AI / { TRUE, TRUE, FALSE, FALSE, FALSE}
};

對于GAP類型(鎖對象建立在supremum上或者申請的鎖類型為LOCK_GAP)且申請的不是插入意向鎖時,無需等待任何鎖,這是因為不同Session對于相同GAP可能申請不同類型的鎖,而GAP鎖本身設計為不互相沖突;
LOCK_ORDINARY 或者LOCK_REC_NOT_GAP類型的鎖對象,無需等待LOCK_GAP類型的鎖;
LOCK_GAP類型的鎖無需等待LOCK_REC_NOT_GAP類型的鎖對象;
任何鎖請求都無需等待插入意向鎖。

表級鎖

InnoDB的表級別鎖包含五種鎖模式:LOCK_IS、LOCK_IX、LOCK_X、LOCK_S以及LOCK_AUTO_INC鎖,鎖之間的相容性遵循數組lock_compatibility_matrix中的定義。

InnoDB表級鎖的目的是為了防止DDL和DML的并發問題。但從5.5版本開始引入MDL鎖后,InnoDB層的表級鎖的意義就沒那么大了,MDL鎖本身已經覆蓋了其大部分功能。

意向鎖是表級別的,IS和IX鎖之間相互并不沖突,但與表級S/X鎖沖突。
在對記錄加S鎖或者X鎖時,必須保證其在相同的表上有對應的意向鎖或者鎖強度更高的表級鎖。

看完了這篇文章,相信你對Mysql-InnoDB鎖的示例分析有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

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

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女