zoukankan      html  css  js  c++  java
  • 间隙锁GAP

    当用范围条件检索数据而不是相等条件检索数据,并请求共享或排他锁是,InnoDB会给符合范围条件的已有数据记录的索引项加锁;对于键值在条件范围内但不存在的记录,叫做间隙。InnoDB也会对这个间隙进行加锁,这种锁机制就是间隙锁。

    间隙锁只会在Repeatable read隔离级别下使用,例如test表中有101条记录,其中id的值分别是1、2……101。Select * from test where id >100 for update;这就是一个范围查询,InnoDB不仅会给符合条件的id=101的记录加锁,也会对id>101(这些记录不存在)的间隙加锁。InnoDB使用间隙锁的目的:

    第一,为了防止幻读。第二,满足恢复和复制的需要。MySQL的恢复机制要求在一个事务未提交前,其他事务不能插入满足其锁定条件的任何记录,也就是不允许出现幻读。

    欢迎批评指正,提出问题,谢谢!
  • 相关阅读:
    JavaScript的关键点
    博客开始
    CCF
    java-CCF+杂七杂八
    【软件工程】需求分析V2再整理
    汇编 书上实验
    组原2
    chrome主页被绑架
    【软件工程】乱的一遭
    【我希望我能鼓起勇气】汇编语言
  • 原文地址:https://www.cnblogs.com/xxeleanor/p/14369515.html
Copyright © 2011-2022 走看看