成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

MySQL InnoDB 鎖的相關(guān)總結(jié)

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

shared lock (譯:共享鎖)

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

InnoDB實(shí)現(xiàn)了標(biāo)準(zhǔn)的行級(jí)鎖,其中有兩種類型的鎖,共享鎖(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.

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

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

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

T2對(duì)S鎖的請(qǐng)求可以立即被授予。結(jié)果就是,T1和T2在行r上都持有S鎖。 T2對(duì)X鎖的請(qǐng)求不能立即被授予。

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

2. Intention Locks

Intention Locks(譯:意向鎖)

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

有兩種類型的意向鎖:

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

例如,SELECT ... LOCK IN SHARE MODE 設(shè)置一個(gè)IS鎖,SELECT ... FOR UPDATE 設(shè)置一個(gè)IX鎖。

意向鎖的協(xié)定是這樣的:

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

MySQL InnoDB 鎖的相關(guān)總結(jié)

如果一個(gè)鎖與現(xiàn)有鎖兼容,則將其授予請(qǐng)求的事務(wù),但如果與現(xiàn)有鎖沖突,則不授予該鎖。事務(wù)等待,直到?jīng)_突的現(xiàn)有鎖被釋放。如果一個(gè)鎖請(qǐng)求與一個(gè)現(xiàn)有的鎖沖突,并且因?yàn)樗鼤?huì)導(dǎo)致死鎖而不能被授予,那么就會(huì)發(fā)生錯(cuò)誤。

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

3. Record Locks

Record Locks(譯:記錄鎖)

A record lock is a lock on an index record.

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

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

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.

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

例如,SELECT c1 FROM t WHERE c1 BETWEEN 10 and 20 FOR UPDATE; 防止其他事務(wù)將值15插入到t.c1列中,無論該列中是否已經(jīng)有這樣的值,因?yàn)榉秶鷥?nèi)所有現(xiàn)有值之間的間隙都被鎖定了。

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

間隙鎖是性能和并發(fā)性之間權(quán)衡的一部分,在某些事務(wù)隔離級(jí)別中使用,而在其他級(jí)別中則不使用。

對(duì)于使用唯一索引鎖定行以搜索唯一行的語(yǔ)句,不需要間隙鎖定。

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

SELECT * FROM child WHERE id = 100;

如果id列沒有索引或者有一個(gè)非唯一索引,則該語(yǔ)句會(huì)鎖定前面的間隙。

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

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

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

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執(zhí)行行級(jí)鎖的方式是這樣的:當(dāng)它搜索或掃描一個(gè)表索引時(shí),它會(huì)在遇到的索引記錄上設(shè)置共享鎖或排他鎖。因此,行級(jí)鎖實(shí)際上是索引記錄鎖。索引記錄上的next-key鎖也會(huì)影響該索引記錄之前的“間隙”。也就是說,next-key鎖是索引記錄鎖加上索引記錄之前的間隙鎖。如果一個(gè)會(huì)話在一個(gè)索引中的記錄R上有一個(gè)共享鎖或排他鎖,則另一會(huì)話無法按照索引順序在R之前的間隙中插入新的索引記錄。

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

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

默認(rèn)情況下,InnoDB使用REPEATABLE READ事務(wù)隔離級(jí)別。在這種情況下,InnoDB使用next-key鎖進(jìn)行搜索和索引掃描,以阻止幻象行。

6. Insert Intention Locks

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

插入意向鎖是一種間隙鎖,是由INSERT操作在行插入之前設(shè)置的。這個(gè)鎖表示,如果多個(gè)事務(wù)插入到同一個(gè)索引間隙中,如果它們沒有插入到這個(gè)間隙中的同一位置,那么它們就不需要等待對(duì)方。假設(shè)有值為4和7的索引記錄。嘗試插入值分別為5和6的獨(dú)立事務(wù),在獲得插入行的排他鎖之前,每個(gè)事務(wù)都用插入意向鎖鎖住4和7之間的間隙,但不會(huì)阻塞彼此,因?yàn)樾惺遣粵_突的。

7. AUTO-INC Locks

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

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

以上就是MySQL InnoDB 鎖的相關(guān)總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于MySQL InnoDB 鎖的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: MySQL 數(shù)據(jù)庫(kù)
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
欧美色网站导航| 国产成人午夜精品5599| 久久伊人中文字幕| 亚洲精品中文在线| 国产电影精品久久禁18| 在线观看视频欧美| 中文字幕乱码日本亚洲一区二区| 亚洲电影一级片| 激情六月婷婷久久| 国产精品对白刺激久久久| 欧美在线视频你懂得| 三级欧美韩日大片在线看| 99精品国产视频| 久久中文在线| 国产偷国产偷精品高清尤物| 日本成人在线电影网| 欧美激情第六页| 欧美日韩激情在线| 一区二区三区四区不卡在线 | 国产福利91精品| 欧美一级片免费看| 一区二区三区欧美日韩| 91久久极品少妇xxxxⅹ软件| 日韩女优av电影| 午夜a成v人精品| 欧美精品一卡| 欧美韩日一区二区三区| 亚洲成色精品| 精品久久久三级丝袜| 婷婷成人综合网| 色先锋久久av资源部| 国产精品第13页| 成人午夜激情在线| 欧美在线一二三四区| 狠狠色丁香婷综合久久| 欧美刺激午夜性久久久久久久 | 久久激五月天综合精品| 亚洲精品专区| 精品国产百合女同互慰| 久久成人精品无人区| 在线成人高清不卡| 免费看日韩精品| 亚洲综合不卡| 国产精品乱码一区二三区小蝌蚪| 国产一区二区视频在线播放| 亚洲一区在线直播| 视频在线观看一区二区三区| 欧美日韩国产区一| 成人精品一区二区三区四区| 国产精品―色哟哟| 亚洲一区二区在线看| 老司机午夜精品99久久| 日韩欧美你懂的| 欧美日韩1区2区3区| 亚洲国产日韩a在线播放| 在线精品亚洲一区二区| 亚洲成人动漫一区| 欧美精品tushy高清| 91老师片黄在线观看| 精品国产伦一区二区三区观看方式| 欧美成ee人免费视频| 久久夜色精品一区| 精品91久久久久| 中文字幕日韩一区二区| 欧美在线1区| 亚洲精品va在线观看| 欧美日韩免费在线视频| 久久国产生活片100| 精品国产乱子伦一区| 亚洲精美视频| 国产在线精品一区二区夜色| 国产精品乱码久久久久久| 91久久精品一区二区三区| 亚洲不卡av一区二区三区| 欧美日韩一区二区三区高清| 91色|porny| 婷婷国产v国产偷v亚洲高清| 欧美成人伊人久久综合网| 亚洲精品美女久久7777777| 国内精品嫩模私拍在线| 成人免费一区二区三区视频| 欧美探花视频资源| 黄色精品免费| 国产一区二区三区蝌蚪| 国产精品福利电影一区二区三区四区| 欧美性videosxxxxx| 国产精品播放| 极品少妇xxxx精品少妇偷拍| 欧美三片在线视频观看| 欧美在线三级| 美国精品在线观看| 91精品国产综合久久香蕉的特点 | 91精品国产品国语在线不卡| 亚洲天堂久久| 国产乱妇无码大片在线观看| 欧美一级理论片| 粉嫩绯色av一区二区在线观看| 日韩欧美视频在线| 国产精品日韩欧美一区二区三区 | 久久九九久久九九| 91久久久免费一区二区| 国产一区二区三区自拍| 国产精品99久久久久久久vr| 亚洲图片欧美视频| 国产日韩在线不卡| 亚洲激情av| 国产成人午夜高潮毛片| 丝袜a∨在线一区二区三区不卡| 国产人久久人人人人爽| 欧美日韩免费一区二区三区| 亚洲国产精品视频一区| 成人黄色综合网站| 中文字幕免费在线观看视频一区| 欧洲日韩一区二区三区| 在线日韩av永久免费观看| 波多野洁衣一区| 国产精品毛片久久久久久久| 欧美高清视频不卡网| 国产乱人伦精品一区二区| 亚洲欧美在线网| 国产不卡一区视频| 日韩电影在线免费观看| 亚洲精品日韩专区silk| 国产亚洲精久久久久久| 日韩欧美一二三四区| 欧美主播一区二区三区| 国产亚洲精品v| 午夜天堂精品久久久久| 国产毛片精品国产一区二区三区| 丝袜美腿亚洲一区二区图片| 一区二区三区日本| 中文字幕一区二区三区四区| 久久久99免费| 国产精品视频| 欧美日韩国产探花| 日韩电影免费在线观看网站| 亚洲欧美色综合| 欧美日韩亚洲高清一区二区| 国产精品丝袜xxxxxxx| 国产精品v日韩精品v欧美精品网站| 懂色av一区二区三区免费看| 韩国三级在线一区| 日本女人一区二区三区| 亚洲无人区一区| 亚洲精品久久久久久国产精华液| 国产婷婷色一区二区三区| 欧美xxxxx牲另类人与| 91精品久久久久久久91蜜桃| 欧美日韩久久不卡| 欧美亚洲一区二区在线| 麻豆av福利av久久av| av在线不卡电影| 国模一区二区三区白浆| 蜜乳av一区二区三区| 亚洲成va人在线观看| 一卡二卡三卡日韩欧美| 亚洲欧美日韩国产中文在线| 中文字幕中文字幕一区| 日本一区二区三区四区| 国产清纯白嫩初高生在线观看91| 精品人在线二区三区| 精品久久久久久亚洲综合网| 日韩精品一区二区三区三区免费| 欧美一区二区福利在线| 91麻豆精品国产自产在线观看一区| 欧美三级中文字幕| 欧美日韩五月天| 91精品国产综合久久久蜜臀图片| 欧美精品久久一区| 欧美一区二区三区日韩| 在线综合亚洲欧美在线视频| 日韩一区二区三区电影在线观看| 日韩一级高清毛片| 91麻豆精品国产91久久久久久 | 亚洲成人激情av| 天天色天天操综合| 蜜臀国产一区二区三区在线播放| 日本不卡免费在线视频| 男女视频一区二区| 国产在线精品一区二区三区不卡| 国产成人aaa| 91在线观看美女| 狠狠色丁香久久综合频道| 亚洲午夜在线观看| 国产精品久久久久毛片大屁完整版| 久久riav二区三区| 欧美高清日韩| 欧美bbbxxxxx| 激情另类综合| 国产精品裸体一区二区三区| 校园春色综合网| 欧美亚洲动漫精品| 欧美一区二视频| 久久亚洲私人国产精品va媚药| 国产日产欧美精品一区二区三区| 亚洲人妖av一区二区| 久久综合给合久久狠狠狠97色69| 久久精品一区蜜桃臀影院| 中文字幕欧美日韩一区| 亚洲精品中文在线观看|