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

首頁 > 數據庫 > MySQL > 正文

mysql之innodb的鎖分類介紹

2020-01-18 23:55:34
字體:
來源:轉載
供稿:網友
一、innodb行鎖分類

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

二、語句鎖定情況分析

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

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

? CREATE TABLE ... SELECT ... 把SELECT當作一個持續讀來執行,或者帶著共享鎖定來執行,如前面的條目所述。
? 如果唯一鍵沒有沖突,REPLACE象一個插入一樣被做。另外,對必須更新的行設置一個獨占的nextkey鎖定。
? UPDATE ... WHERE ... 對搜索遇到的每個記錄設置一個獨占的next-key鎖定。
? DELETE FROM ... WHERE ... 對搜索遇到的每個記錄設置一個獨占的next-key鎖定。
? 如果對一個表定義FOREIGN KEY約束,任何需要檢查約束條件的插入,更新或刪除對它看著檢查約束的記錄設置共享行級鎖定。InnoDB在約束失敗的情況下也設置這些鎖定。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 册亨县| 内黄县| 榆中县| 济宁市| 通州区| 岢岚县| 红安县| 会同县| 高唐县| 金寨县| 高安市| 池州市| 西吉县| 老河口市| 邵阳县| 沅陵县| 伊宁市| 社旗县| 普兰县| 阿拉善左旗| 兰州市| 称多县| 德阳市| 乌恰县| 清原| 麟游县| 张家港市| 舟山市| 新竹市| 江门市| 苗栗市| 永泰县| 米泉市| 铁力市| 察雅县| 金沙县| 赤水市| 瑞金市| 农安县| 公主岭市| 东港市|