MySQL InnoDB儲存引擎中的鎖(二)

2021-08-08 09:28:35 字數 554 閱讀 2611

innodb儲存引擎中有三種行鎖演算法:

1.1 next-key lock

next_key lock 是結合了gap lock 和 record lock的一種鎖定演算法,例如有乙個索引有10, 11, 13, 20 四個值, 則next-key lock的鎖定區間為(-∞, 10), [10, 11), [11, 13), [13, 20), [20, +∞)。

當查詢的索引含有唯一屬性時, next-key lock會降級為record lock,僅鎖住索引本身,而不是範圍。

對於輔助索引, 則會使next-key lock,並且innodb引擎還會對輔助索引的下乙個鍵值加上gap lock

innodb使用next-key locking機制來避免幻讀問題。

幻讀是指在同一事務下, 連續執行兩次同樣的sql語句可能導致不同結果, 第二次的sql語句可能會返回之前不存在的行。
2.1 概念
死鎖是指兩個或者兩個以上的事務在執行過程中,因爭奪鎖資源造成的一種互相等待的現象。
解決死鎖的方式:

mysql InnoDB儲存引擎

innodb的組成部分 1.後台執行緒 2.儲存引擎記憶體池 innodb儲存引擎記憶體緩衝池 1.記憶體緩衝池 innodb是基於磁碟儲存的,並將其中的記錄按照頁的方式進行管理。因此,可將其視為基礎磁碟的資料庫系統。在資料庫系統中,由於cpu速度與磁碟速度之間的紅狗,基於磁碟的資料庫系統通常使用緩...

Mysql Innodb儲存引擎

鎖 參考資料 參考資料 行鎖 innodb的鎖是對索引加鎖,如果查詢到並沒有用到索引就會對錶進行加鎖 record lock 對單條記錄加上鎖 gap lock 間隙鎖,鎖定乙個範圍,但是不包含記錄本身 next key lock record lock gap lock,鎖定乙個方位並鎖定記錄本身...

MYSQL INNODB 儲存引擎

innodb 是事務安全的mysql儲存引擎,設計上採用了類似於oracle的架構。一般而言,在oltp的應用中,innodb應該作為核心應用表的首選儲存引擎。同時,也是因為innodb的存在,才使得mysql變得更有魅力。第一 innodb儲存引擎概述 innodb由innobase oy 公司開...