欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql之innodb的鎖分類介紹

 更新時間:2012年11月20日 15:51:11   作者:  
本文將介紹mysql之innodb的鎖分類,需要了解更多的朋友可以參考下
一、innodb行鎖分類

record lock:記錄鎖,也就是僅僅鎖著單獨的一行
gap lock:區(qū)間鎖,僅僅鎖住一個區(qū)間(注意這里的區(qū)間都是開區(qū)間,也就是不包括邊界值。
next-key lock:record lock+gap lock,所以next-key lock也就半開半閉區(qū)間,且是下界開,上界閉。 www.dbjr.com.cn
next-key 鎖定范圍:(負(fù)無窮大,最小第一記錄],(記錄之間],(最大記錄,正無窮大)

二、語句鎖定情況分析

SELECT ... FROM ... FOR UPDATE對讀遇到的所有索引記錄設(shè)置獨占的next-key鎖定。
INSERT INTO ... VALUES (...)對被插入的行設(shè)置獨占鎖定。注意,這不是一個next-key鎖定,并且不阻止其它用戶在已插入行之前的間隙插入。如果發(fā)生重復(fù)鍵錯誤,對重復(fù)的索引記錄設(shè)置共享鎖定。
· 在一個表上初始化之前指定的AUTO_INCREMENT列之時,InnoDB在與AUTO_INCREMENT列相關(guān)聯(lián)的索引的末尾設(shè)置獨占鎖定。在訪問自動增長計數(shù)器中,InnoDB使用專用的表鎖定模式AUTO-INC,其中鎖定僅持續(xù)到當(dāng)前SQL語句的結(jié)束,而不是到整個事務(wù)的結(jié)束。InnoDB取回先前初始化的AUTO_INCREMENT列的值而不設(shè)定任何鎖定。

INSERT INTO T SELECT ... FROM S WHERE ... 對每個插入到T的行設(shè)置獨占(非next-key)鎖定。它在S上把搜索當(dāng)作一個持續(xù)讀,但是如果MySQL二進(jìn)制日志功能被打開,它就對S設(shè)置一個共享的next-key鎖
定。InnoDB在后一種情況不得不設(shè)置鎖定:在從一個備份的前滾恢復(fù)中,每個SQL語句不得不以與它最初被執(zhí)行的方式完全同樣的方式執(zhí)行。

· CREATE TABLE ... SELECT ... 把SELECT當(dāng)作一個持續(xù)讀來執(zhí)行,或者帶著共享鎖定來執(zhí)行,如前面的條目所述。
· 如果唯一鍵沒有沖突,REPLACE象一個插入一樣被做。另外,對必須更新的行設(shè)置一個獨占的nextkey鎖定。
· UPDATE ... WHERE ... 對搜索遇到的每個記錄設(shè)置一個獨占的next-key鎖定。
· DELETE FROM ... WHERE ... 對搜索遇到的每個記錄設(shè)置一個獨占的next-key鎖定。
· 如果對一個表定義FOREIGN KEY約束,任何需要檢查約束條件的插入,更新或刪除對它看著檢查約束的記錄設(shè)置共享行級鎖定。InnoDB在約束失敗的情況下也設(shè)置這些鎖定。

相關(guān)文章

  • MySQL delete刪除數(shù)據(jù)后釋放磁盤空間的操作方法

    MySQL delete刪除數(shù)據(jù)后釋放磁盤空間的操作方法

    這篇文章主要介紹了MySQL delete刪除數(shù)據(jù)后,釋放磁盤空間,文中給大家介紹了優(yōu)化表空間的多種方法,每種方法給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • MySQL之select、distinct、limit的使用

    MySQL之select、distinct、limit的使用

    這篇文章主要介紹了MySQL之select、distinct、limit的使用,下面文章圍繞select、distinct、limit的相關(guān)資料展開聚集內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • MySQL 5.7雙主同步部分表的實現(xiàn)過程詳解

    MySQL 5.7雙主同步部分表的實現(xiàn)過程詳解

    這篇文章主要給大家介紹了關(guān)于MySQL 5.7雙主同步部分表實現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • Linux系統(tǒng)下實現(xiàn)遠(yuǎn)程連接MySQL數(shù)據(jù)庫的方法教程

    Linux系統(tǒng)下實現(xiàn)遠(yuǎn)程連接MySQL數(shù)據(jù)庫的方法教程

    MySQL默認(rèn)root用戶只能本地訪問,不能遠(yuǎn)程連接管理mysql數(shù)據(jù)庫,Linux如何開啟mysql遠(yuǎn)程連接?下面這篇文章主要給大家介紹了在Linux系統(tǒng)下實現(xiàn)遠(yuǎn)程連接MySQL數(shù)據(jù)庫的方法教程,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-06-06
  • 使用mysqldump實現(xiàn)mysql備份

    使用mysqldump實現(xiàn)mysql備份

    mysqldump客戶端可用來轉(zhuǎn)儲數(shù)據(jù)庫或搜集數(shù)據(jù)庫進(jìn)行備份或?qū)?shù)據(jù)轉(zhuǎn)移到另一個SQL服務(wù)器(不一定是一個MySQL服務(wù)器)。今天我們就來詳細(xì)探討下mysqldump的使用方法
    2016-11-11
  • Windows?本地安裝?Mysql8.0圖文教程

    Windows?本地安裝?Mysql8.0圖文教程

    本文介紹了如何在Windows本地安裝Mysql8.0。從下載Mysql8.0安裝包,運行安裝程序,配置初始設(shè)置到啟動Mysql服務(wù)等詳細(xì)步驟進(jìn)行了講解。
    2023-04-04
  • Oracle和MySQL中生成32位uuid的方法舉例(國產(chǎn)達(dá)夢同Oracle)

    Oracle和MySQL中生成32位uuid的方法舉例(國產(chǎn)達(dá)夢同Oracle)

    近日遇到朋友問及如何生成UUID,UUID是通用唯一識別碼(Universally Unique Identifier)方法,這里給大家總結(jié)下,這篇文章主要給大家介紹了關(guān)于Oracle和MySQL中生成32位uuid的方法,需要的朋友可以參考下
    2023-08-08
  • MySQL常用表級操作總結(jié)

    MySQL常用表級操作總結(jié)

    這篇文章主要為大家詳細(xì)介紹了MySQL中常用的表級操作,文中的示例代碼簡潔易懂,對我們學(xué)習(xí)MySQL有一定的幫助,感興趣的小伙伴可以學(xué)習(xí)一下
    2023-08-08
  • mysql使用left?join連接出現(xiàn)重復(fù)問題的記錄

    mysql使用left?join連接出現(xiàn)重復(fù)問題的記錄

    這篇文章主要介紹了mysql使用left?join連接出現(xiàn)重復(fù)問題的記錄,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • MySQL實現(xiàn)字符串截取的圖文教程

    MySQL實現(xiàn)字符串截取的圖文教程

    在實際的項目開發(fā)中有時會有對數(shù)據(jù)庫某字段截取部分的需求,這種場景有時直接通過數(shù)據(jù)庫操作來實現(xiàn)比通過代碼實現(xiàn)要更方便快捷些,這篇文章主要給大家介紹了關(guān)于MySQL實現(xiàn)字符串截取的相關(guān)資料,需要的朋友可以參考下
    2022-03-03

最新評論