鎖:
參考資料
參考資料
行鎖: innodb的鎖是對索引加鎖,如果查詢到並沒有用到索引就會對錶進行加鎖
record lock:對單條記錄加上鎖
gap lock: 間隙鎖,鎖定乙個範圍,但是不包含記錄本身
next -key lock: record lock+ gap lock,鎖定乙個方位並鎖定記錄本身
innodb會根據不同事務隔離級別會使用不同的演算法
mvcc:多版本控制
表鎖:例子:update from user set status = 0 where status =1
如果status 沒有加索引的話,會導致產生表鎖
隱式加鎖:
自增長鎖:
外來鍵鎖:
意向鎖:
如果沒有意向鎖,加表鎖時需要判斷每一條記錄是否加鎖(行鎖),效率低下,為了提高效率,當加行鎖時會給表加上意向鎖,這樣當我們加表鎖時,先判斷是否加了表鎖,再判斷是否有意向鎖 這樣就不需要遍歷所有行的鎖了
mysql InnoDB儲存引擎
innodb的組成部分 1.後台執行緒 2.儲存引擎記憶體池 innodb儲存引擎記憶體緩衝池 1.記憶體緩衝池 innodb是基於磁碟儲存的,並將其中的記錄按照頁的方式進行管理。因此,可將其視為基礎磁碟的資料庫系統。在資料庫系統中,由於cpu速度與磁碟速度之間的紅狗,基於磁碟的資料庫系統通常使用緩...
MYSQL INNODB 儲存引擎
innodb 是事務安全的mysql儲存引擎,設計上採用了類似於oracle的架構。一般而言,在oltp的應用中,innodb應該作為核心應用表的首選儲存引擎。同時,也是因為innodb的存在,才使得mysql變得更有魅力。第一 innodb儲存引擎概述 innodb由innobase oy 公司開...
MYSQL InnoDB儲存引擎 鎖
目錄 鎖的型別 行級鎖 意向鎖 一種表級鎖 一致性非鎖定讀 innodb儲存引擎的預設設定 行鎖的3種演算法 死鎖 innodb儲存引擎實現了如下兩種標準的行級鎖 1 共享鎖 s lock 允許事務讀一行資料。select column from table lock in share mode 2...