1).對於範圍條件查詢而言, innodb 不僅會對範圍條件之內存在的資料加鎖,也會對範圍之內不存在的資料加鎖
select * from emp where empid > 100 for update; 其中 empid 在表中的資料有 1,2...100,101
對於 empid > 101 的 資料也會加鎖,這個鎖就是 「間隙鎖」
2)innodb 除了通過範圍條件加鎖時使用間隙鎖外,如果使用相等條件請求給乙個不存在的記錄加鎖,innodb 也會使用間隙鎖
作用:一方面為了防止幻讀,另一方面是為了滿足其恢復和複製的需要
Mysql 行鎖 間隙鎖和next key鎖詳解
一 基本概念 innodb支援幾種不同的行級鎖,myisam只支援表級鎖 行鎖 record lock 對索引記錄加鎖。間隙鎖 gap lock 鎖住整個區間,包括 區間裡具體的索引記錄,不存在的空閒空間 可以是兩個索引記錄之間,也可能是第乙個索引記錄之前或最後乙個索引記錄之後的空間 next ke...
mysql間隙鎖 mysql間隙鎖
前面一文 mysql鎖 介紹了mysql innodb儲存引擎的各種鎖,本文介紹一下innodb儲存引擎的間隙鎖,就以下問題展開討論 1.什麼是間隙鎖?間隙鎖是怎樣產生的?2.間隙鎖有什麼作用?3.使用間隙鎖有什麼隱患?一 間隙鎖的基本概念 1.什麼叫間隙鎖 當我們用範圍條件而不是相等條件檢索資料,...
mysql 間隙鎖 mysql間隙鎖 轉
前面一文 mysql鎖 介紹了mysql innodb儲存引擎的各種鎖,本文介紹一下innodb儲存引擎的間隙鎖,就以下問題展開討論 1.什麼是間隙鎖?間隙鎖是怎樣產生的?2.間隙鎖有什麼作用?3.使用間隙鎖有什麼隱患?一 間隙鎖的基本概念 1.什麼叫間隙鎖 當我們用範圍條件而不是相等條件檢索資料,...