一、innodb行鎖分類
record lock:記錄鎖,也就是僅僅鎖著單獨的一行
gap lock:區間鎖,僅僅鎖住一個區間(注意這里的區間都是開區間,也就是不包括邊界值。
next-key lock:record lock+gap lock,所以next-key lock也就半開半閉區間,且是下界開,上界閉。 m.ythuaji.com.cn
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在約束失敗的情況下也設置這些鎖定。
mysql之innodb的鎖分類介紹
2019-12-12 16:27MYSQL教程網 Mysql
本文將介紹mysql之innodb的鎖分類,需要了解更多的朋友可以參考下
延伸 · 閱讀
- 2022-03-11并發編程之Java內存模型鎖的內存語義
- 2022-03-11MySQL的索引你了解嗎
- 2022-03-10面試中老生常談的MySQL問答集錦夯實基礎
- 2022-03-10淺談如何保證Mysql主從一致
- 2022-03-10Ubuntu18.04(linux)安裝MySQL的方法步驟
- 2022-03-09MySQL讓人又愛又恨的多表查詢
- Mysql
幾種MySQL中的聯接查詢操作方法總結
這篇文章主要介紹了幾種MySQL中的聯接查詢操作方法總結,文中包括一些代碼舉例講解,需要的朋友可以參考下 ...
- Mysql
MySQL全文索引、聯合索引、like查詢、json查詢速度哪個快
這篇文章主要介紹了MySQL全文索引、聯合索引、like查詢、json查詢速度大比拼,通過實例代碼截圖的形式給大家介紹的非常詳細,具有一定的參考借鑒價值...
- Mysql
MySQL server has gone away錯誤提示解決方法
今天遇到類似的情景,MySQL只是冷冷的說:MySQL server has gone away。 ...
- Mysql
MySQL之Field‘***’doesn’t have a default value錯誤解決辦法
這篇文章主要介紹了MySQL之Field‘***’doesn’t have a default value錯誤解決辦法,需要的朋友可以參考下 ...
- Mysql
Centos7下使用yum安裝mysql數據庫的詳細教程(增強版)
這篇文章主要介紹了Centos7下使用yum安裝mysql數據庫的詳細教程(增強版),非常不錯,具有參考借鑒價值,需要的朋友可以參考下 ...
- Mysql
解決重置Mysql root用戶賬號密碼問題
這篇文章主要介紹了解決重置Mysql root用戶賬號密碼問題,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下...
- Mysql
MySQL 查詢速度慢與性能差的原因與解決方法
隨著網站數據量與訪問量的增加,MySQL 查詢速度慢與性能差的問題就日漸明顯,這里為大家分享一下解決方法,需要的朋友可以參考下...
- Mysql
MySQL鎖的知識點總結
在本篇文章里小編給大家整理了關于MySQL鎖的知識點總結以及實例內容,需要的朋友們學習下。...