摘要:表級鎖的表級別鎖包含五種鎖模式以及鎖,鎖之間的相容性遵循數組中的定義。表級鎖的目的是為了防止和的并發問題。意向鎖是表級別的,和鎖之間相互并不沖突,但與表級鎖沖突。
鎖類型 行級鎖
鎖模式只有LOCK_S 和LOCK_X,其他的 FLAG 用于鎖的描述,如前述 LOCK_GAP、LOCK_REC_NOT_GAP 以及 LOCK_ORDINARY、LOCK_INSERT_INTENTION 四種描述。
LOCK_REC_NOT_GAP LOCK_GAP LOCK_ORDINARY(Next-Key Lock) LOCK_INSERT_INTENTIONstatic 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鎖時,必須保證其在相同的表上有對應的意向鎖或者鎖強度更高的表級鎖。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/17908.html
摘要:幻讀在一個事務中,同一個范圍內的記錄被讀取時,其他事務向這個范圍添加了新的記錄。分布式事物提供訪問事物資源的方法協調參與全局事物中的各個事物定義事物的便捷,指定全局事物中的操作 事物基本概念 事物的特性(ACID) 原子性 atomicity 一致性 consistency 隔離性 isolation 持久性 durability 事物的類型 扁平事物 帶有保存點的扁平事物 鏈事物 ...
閱讀 2953·2021-11-17 09:33
閱讀 3118·2021-11-16 11:52
閱讀 482·2021-09-26 09:55
閱讀 2975·2019-08-30 15:52
閱讀 1312·2019-08-30 15:44
閱讀 1257·2019-08-30 13:59
閱讀 795·2019-08-30 13:08
閱讀 1157·2019-08-30 10:50