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的恢复机制要求在一个事务未提交前,其他事务不能插入满足其锁定条件的任何记录,也就是不允许出现幻读。

    欢迎批评指正,提出问题,谢谢!
  • 相关阅读:
    Python 15 爬虫(一)
    Python 14 Mysql数据库(二)
    Python 13 JQuery&Bootstrp
    Python 12 CSS&JavaScript&DOOM
    Python 11 HTML
    Python 10 MySQL数据库(一)
    Python 9 Redis
    Python 8 协程
    Python 7 并发编程
    SNMP协议详解
  • 原文地址:https://www.cnblogs.com/xxeleanor/p/14369515.html
Copyright © 2011-2022 走看看