国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫(kù) > MySQL > 正文

mysql之innodb的鎖分類介紹

2024-07-24 12:48:58
字體:
供稿:網(wǎng)友
一、innodb行鎖分類

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

二、語句鎖定情況分析

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

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

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

您可能感興趣的文章:

MySQL InnoDB之事務(wù)與鎖詳解MySQL中InnoDB存儲(chǔ)引擎的鎖的基本使用教程詳談innodb的鎖(record,gap,Next-Key lock)
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 巴里| 夏邑县| 嘉善县| 青田县| 新泰市| 涿鹿县| 静海县| 安远县| 清远市| 南陵县| 新安县| 任丘市| 马边| 甘泉县| 吴桥县| 托克逊县| 承德县| 察雅县| 郑州市| 晋州市| 远安县| 峨边| 通河县| 南部县| 仁布县| 神池县| 昆山市| 田林县| 丰台区| 汝州市| 额济纳旗| 准格尔旗| 南华县| 平利县| 西安市| 焦作市| 永胜县| 万州区| 龙门县| 千阳县| 确山县|