日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

MySQL InnoDB 鎖的相關總結

瀏覽:119日期:2023-10-05 16:08:04
1. Shared and Exclusive Locks

shared lock (譯:共享鎖)

exclusive lock (譯:排它鎖、獨占鎖)

InnoDB實現了標準的行級鎖,其中有兩種類型的鎖,共享鎖(shared locks)和排他鎖(exclusive locks)。

A shared (S) lock permits the transaction that holds the lock to read a row.

An exclusive (X) lock permits the transaction that holds the lock to update or delete a row.

共享鎖允許持有該鎖的事務讀取一行。

排它鎖允許持有該鎖的事務更新或刪除行。

如果事務T1持有行 r 上的共享鎖(S),那么來自不同事務T2的請求將按照以下方式處理:

T2對S鎖的請求可以立即被授予。結果就是,T1和T2在行r上都持有S鎖。 T2對X鎖的請求不能立即被授予。

如果事務T1持有行 r 上的排它鎖(X),那么來自不同事務T2的請求不能立即被授予 r 上任何一種類型的鎖。相反,事務T2必須等待事務T1釋放其在行 r 上的鎖。

2. Intention Locks

Intention Locks(譯:意向鎖)

InnoDB支持多粒度鎖,允許行鎖和表鎖共存。 例如,諸如LOCK TABLES ... WRITE之類的語句對指定表采用排它鎖(X鎖)。為了在多個粒度級別上實現鎖,InnoDB使用了意向鎖。意向鎖是表級鎖,它指示事務稍后需要對表中的一行使用哪種類型的鎖(共享鎖或者排它鎖)。

有兩種類型的意向鎖:

意向共享鎖(IS)表示事務打算在表中的單個行上設置共享鎖。 意向排他鎖(IX)表示事務打算在表中的單個行上設置排它鎖。

例如,SELECT ... LOCK IN SHARE MODE 設置一個IS鎖,SELECT ... FOR UPDATE 設置一個IX鎖。

意向鎖的協定是這樣的:

在事務獲得表中某一行的共享鎖之前,它必須首先獲得表上的IS鎖或更強鎖。在事務獲得表中某一行的排它鎖之前,它必須首先獲得表上的IX鎖。 表級鎖類型兼容性如下圖:

MySQL InnoDB 鎖的相關總結

如果一個鎖與現有鎖兼容,則將其授予請求的事務,但如果與現有鎖沖突,則不授予該鎖。事務等待,直到沖突的現有鎖被釋放。如果一個鎖請求與一個現有的鎖沖突,并且因為它會導致死鎖而不能被授予,那么就會發生錯誤。

意向鎖除了全表請求(例如LOCK TABLES ... WRITE)外,不阻止任何其他內容。意圖鎖定的主要目的是表明某人正在鎖定表中的行或要鎖定表中的行。

3. Record Locks

Record Locks(譯:記錄鎖)

A record lock is a lock on an index record.

記錄鎖是索引記錄上的鎖。例如,SELECT c1 FROM t WHERE c1 = 10 FOR UPDATE; 防止任何其他事務插入、更新或刪除t.c1值為10的行。

記錄鎖總是鎖定索引記錄,即使一個表沒有定義索引也是如此。如果表沒有索引,InnoDB創建一個隱藏的聚集索引,并將該索引用于記錄鎖。

4. Gap Locks

Gap Locks(譯:間隙鎖)

A gap lock is a lock on a gap between index records, or a lock on the gap before the first or after the last index record.

間隙鎖是在索引記錄之間的間隙上的鎖,或者是在第一個索引記錄之前或最后一個索引記錄之后的間隙上的鎖。

例如,SELECT c1 FROM t WHERE c1 BETWEEN 10 and 20 FOR UPDATE; 防止其他事務將值15插入到t.c1列中,無論該列中是否已經有這樣的值,因為范圍內所有現有值之間的間隙都被鎖定了。

間隙可能跨越單個索引值、多個索引值,甚至是空的。

間隙鎖是性能和并發性之間權衡的一部分,在某些事務隔離級別中使用,而在其他級別中則不使用。

對于使用唯一索引鎖定行以搜索唯一行的語句,不需要間隙鎖定。

例如,如果id列有一個唯一的索引,下面的語句只對id值為100的行使用index-record鎖,而不管其他會話是否在前面的間隙插入行:

SELECT * FROM child WHERE id = 100;

如果id列沒有索引或者有一個非唯一索引,則該語句會鎖定前面的間隙。

這里還值得注意的是,不同的事務可以在一個間隙上持有沖突的鎖。

例如,事務A可以在一個間隙上持有一個共享間隙鎖(gap S-lock),而事務B在同一個間隙上持有一個排他間隙鎖(gap X-lock)。允許沖突間隙鎖的原因是,如果一條記錄從一個索引中被清除,那么記錄上由不同事務持有的間隙鎖必須被合并。

InnoDB中間隙鎖的唯一目的是防止其他事務插入間隙。間隙鎖可以共存。一個事務取得的間隙鎖并不會阻止另一個事務取得同一間隙上的間隙鎖。共享和獨占間隔鎖之間沒有區別。它們彼此之間不沖突,并且執行相同的功能。

5. Next-Key Locks

A next-key lock is a combination of a record lock on the index record and a gap lock on the gap before the index record.

next-key鎖是索引記錄上的記錄鎖和索引記錄之前的間隙鎖的組合。

InnoDB執行行級鎖的方式是這樣的:當它搜索或掃描一個表索引時,它會在遇到的索引記錄上設置共享鎖或排他鎖。因此,行級鎖實際上是索引記錄鎖。索引記錄上的next-key鎖也會影響該索引記錄之前的“間隙”。也就是說,next-key鎖是索引記錄鎖加上索引記錄之前的間隙鎖。如果一個會話在一個索引中的記錄R上有一個共享鎖或排他鎖,則另一會話無法按照索引順序在R之前的間隙中插入新的索引記錄。

假設一個索引包含值10、11、13和20。該索引可能的next-key鎖覆蓋以下區間:

(negative infinity, 10](10, 11](11, 13](13, 20](20, positive infinity)

默認情況下,InnoDB使用REPEATABLE READ事務隔離級別。在這種情況下,InnoDB使用next-key鎖進行搜索和索引掃描,以阻止幻象行。

6. Insert Intention Locks

Insert Intention Locks(譯:插入意向鎖)

插入意向鎖是一種間隙鎖,是由INSERT操作在行插入之前設置的。這個鎖表示,如果多個事務插入到同一個索引間隙中,如果它們沒有插入到這個間隙中的同一位置,那么它們就不需要等待對方。假設有值為4和7的索引記錄。嘗試插入值分別為5和6的獨立事務,在獲得插入行的排他鎖之前,每個事務都用插入意向鎖鎖住4和7之間的間隙,但不會阻塞彼此,因為行是不沖突的。

7. AUTO-INC Locks

AUTO-INC鎖是一種特殊的表級鎖,由插入到帶有AUTO_INCREMENT列的表中的事務獲得。在最簡單的情況下,如果一個事務正在向表中插入值,那么任何其他事務都必須等待自己對該表的插入,以便由第一個事務插入的行接收連續的主鍵值。

https://dev.mysql.com/doc/refman/5.7/en/innodb-locking.html

以上就是MySQL InnoDB 鎖的相關總結的詳細內容,更多關于MySQL InnoDB 鎖的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
中文字幕一区二区精品区| 成人午夜亚洲| 亚洲国产专区校园欧美| 国产不卡人人| 国产成人精选| 久久久久久久欧美精品| 亚洲视频二区| 日韩欧美在线精品| 欧美一级久久| 国产日韩欧美在线播放不卡| 国产日韩欧美三级| 国产精品日本一区二区不卡视频| 国产精品免费不| 国产aa精品| 色老板在线视频一区二区| 欧美精品一二| 亚洲影视一区二区三区| 亚洲免费一区三区| 国产精品日本一区二区三区在线| 国产精品天天看天天狠| 精品伊人久久| 1024精品一区二区三区| 亚洲影视一区二区三区| 久久精品凹凸全集| 国产精品久久久久久久久妇女| 日韩欧美一区二区三区免费观看| 韩日一区二区三区| 日韩毛片一区| 国产aa精品| 午夜一区在线| 国产精一区二区| 日韩中文首页| 免费观看日韩电影| 免费看一区二区三区| 国产69精品久久| 亚洲成人日韩| 国产欧美日韩视频在线| 日韩精品第一区| 日韩精品一区第一页| 欧美日韩一区二区三区不卡视频| 嫩呦国产一区二区三区av| 在线观看精品| 在线免费观看亚洲| 国产成人久久精品麻豆二区| 国产免费成人| 国产极品一区| 国产精品7m凸凹视频分类| 97精品资源在线观看| 伊人久久av| 蜜桃视频第一区免费观看| 欧美激情麻豆| 日韩中文字幕av电影| 国产精品成人一区二区不卡| 午夜亚洲一区| 在线天堂中文资源最新版| 久色成人在线| 伊人久久av| 青青草伊人久久| 国产激情综合| 亚洲一区二区毛片| 久久精品免费看| 丝袜美腿高跟呻吟高潮一区| 精品视频在线观看网站| 亚洲综合婷婷| 中文在线а√天堂| 亚洲精品动态| 亚洲91视频| 欧美激情99| 婷婷精品在线| 免费视频国产一区| 欧美国产中文高清| 丝瓜av网站精品一区二区| 中文在线а√在线8| 青草久久视频| 日韩午夜在线| 国产aⅴ精品一区二区四区| 亚洲青青久久| 黄色成人91| 日韩一区二区在线免费| 日本精品久久| 亚洲精华国产欧美| 色一区二区三区四区| 欧美日韩亚洲一区二区三区在线| 黄色欧美日韩| 高清av不卡| 麻豆精品一区二区综合av| 先锋影音久久久| 99国产精品免费视频观看| 捆绑调教美女网站视频一区 | 久久婷婷亚洲| 久久国产尿小便嘘嘘| 久久亚洲国产精品一区二区| 色88888久久久久久影院| 国产精品久久国产愉拍| 美美哒免费高清在线观看视频一区二区| 欧美少妇精品| 久久字幕精品一区| 国产三级精品三级在线观看国产| 久久亚洲风情| 亚洲女同中文字幕| 91精品国产成人观看| 福利一区和二区| 久久精品午夜| 久久99偷拍| 国产精品一二| 久久国产精品免费精品3p| 免播放器亚洲一区| 国产精品日本| 伊人久久亚洲美女图片| 久久男女视频| 99精品国产一区二区三区| 亚洲成av在线| 久久久久久一区二区| 久久精品国产久精国产| 国产精品xvideos88| 国产精品密蕾丝视频下载| 久久精品av麻豆的观看方式| 欧美一级网址| **爰片久久毛片| 9999国产精品| 中文字幕一区久| 成人免费电影网址| 美女网站一区| 在线国产一区二区| 亚洲精品1区2区| 久久电影tv| 99精品电影| 亚洲色诱最新| 日韩一区精品字幕| 欧美一区=区三区| 欧美精品第一区| 国产精品日韩精品在线播放| 免费一级欧美片在线观看网站 | 亚洲精品一区二区在线播放∴| 亚洲欧美视频| 日韩一区二区三区在线看| 日韩高清电影一区| 国产精品视频一区二区三区| 国产高清精品二区| 韩日一区二区| 日韩欧美一区二区三区在线观看| 欧美午夜精品一区二区三区电影| 国精品一区二区| 国产精品美女| 日韩国产精品久久久| 国产精品亚洲综合在线观看| 精品一区二区男人吃奶 | av中文资源在线资源免费观看| 国产va免费精品观看精品视频| 久久免费国产| 中文字幕亚洲在线观看| 欧美在线日韩| bbw在线视频| 欧美特黄一级| 日韩视频1区| 美女性感视频久久| 欧美 日韩 国产一区二区在线视频 | 亚洲成人不卡| 另类国产ts人妖高潮视频| 综合激情视频| 国产精品男女| 精品日韩视频| 中文字幕日韩亚洲| 国产精品网址| 91精品精品| 日韩中文字幕一区二区高清99| 国产精品2区| 狠狠色狠狠色综合日日tαg| 久久精品72免费观看| 久久久久国产精品一区三寸| 视频一区中文字幕精品| 精品视频在线观看网站| 亚洲精品中文字幕乱码| 久久国产麻豆精品| 在线日韩欧美| 国产欧美日韩影院| 在线一区视频观看| 日韩精品免费视频一区二区三区 | 精品国产一区二区三区av片| 精品欧美久久| 国产精品扒开腿做爽爽爽软件| 欧美日韩在线二区| 日韩av影院| 亚洲天堂黄色| 久久99精品久久久野外观看| 夜夜嗨一区二区| 国产精品亚洲二区| 亚洲欧洲一区| 欧美xxxx性| 亚洲综合三区| 福利在线一区| 日韩高清一区二区| 国产亚洲一区二区手机在线观看 | 日本在线成人| 美女毛片一区二区三区四区| 国产精品久久久久久久久免费高清| 99久久亚洲精品蜜臀| 国产精品欧美日韩一区| 午夜久久一区| 国产一区二区三区四区五区传媒|