mysql記錄鎖 間隙鎖 臨鍵鎖的含義

首先普及一下這三種鎖的定義:
在這裏插入圖片描述
記錄鎖:指where的條件中使用索引作爲條件,查出來的一條數據中的索引項會加鎖,但是這裏需要注意,雖然鎖住的是索引項,但是這一條記錄的其他字段也都不能被修改,不同行中的相同索引值的那條記錄也會被鎖住。

間隙鎖:
記錄鎖中間的數據會加鎖,稱爲間隙鎖,注意間隙鎖之間不互斥,因爲它的數據是空的,互斥沒有意義。

臨鍵鎖:
等於記錄鎖+間隙鎖。左開右閉區間,它鎖定的範圍遵循:
最後一個記錄的下一個左開右閉區間。例如,拿上圖的數據做例子
select * from 表名 where id>4 and id<10,它所包含的記錄是7,7的下一下區間是(7,10],所以在這個區間的數據也會被鎖住。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章