数据库事务隔离技术之 Next-Key Locks
生活随笔
收集整理的這篇文章主要介紹了
数据库事务隔离技术之 Next-Key Locks
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Next-Key Locks
Next-Key Locks 是 MySQL 的 InnoDB 存儲引擎的一種鎖實現。
MVCC 不能解決幻讀的問題,Next-Key Locks 就是為了解決這個問題而存在的。在可重復讀(REPEATABLE READ)隔離級別下,使用 MVCC + Next-Key Locks 可以解決幻讀問題。
Record Locks
鎖定一個記錄上的索引,而不是記錄本身。
如果表沒有設置索引,InnoDB 會自動在主鍵上創建隱藏的聚簇索引,因此 Record Locks 依然可以使用。
Gap Locks
鎖定索引之間的間隙,但是不包含索引本身。例如當一個事務執行以下語句,其它事務就不能在 t.c 中插入 15。
SELECT c FROM t WHERE c BETWEEN 10 and 20 FOR UPDATE;Next-Key Locks
它是 Record Locks 和 Gap Locks 的結合,不僅鎖定一個記錄上的索引,也鎖定索引之間的間隙。例如一個索引包含以下值:10, 11, 13, and 20,那么就需要鎖定以下區間:
(negative infinity, 10] (10, 11] (11, 13] (13, 20] (20, positive infinity)總結
以上是生活随笔為你收集整理的数据库事务隔离技术之 Next-Key Locks的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库的事务隔离技术 之 MVCC
- 下一篇: PyQt:如何给界面自定义背景?