Innodb2

alisql

共享锁排他锁

行级锁

  • s lock read
  • x lock update or delete

意向锁

表级锁
允许行级和表级锁共存

  • IS intend to set s lock
  • IX intend to set X lock
    Select ... lock in share mode(IS)
    select ... for update (IX)
    获取s锁之前,必须获取IS或更高的锁
    获取x之前,必须获取IX
    意向锁不会阻塞除非全表请求(lock tables ... write)
    link1处理加表锁的情况

Record lock

  • 锁一个索引记录
  • 没有定义索引时,使用Innodb自建的聚集索引

Gap lock

  • 在rr级别,非唯一索引或无索引时使用
  • 在索引之间上锁
    link2
    link3
    link4

next key lock

record lock和索引前的gap的gap lock
link

insert intention lock

insert位置前的gap lock
insert会对插入成功的行加上排它锁,这个排它锁是个记录锁。如果insert 的事务出现了duplicate-key error ,事务会对duplicate index record加共享锁。这个共享锁在并发的情况下是会产生死锁的。见link

AUTO-INC lock

表锁
link
link

你可能感兴趣的:(Innodb2)