MySQL InnoDB Locks

Posted by yangyuan on June 5, 2017

InnoDB 锁类型

  • Shared and Exclusive Locks (共享锁及排它锁)
  • Intention Locks (意向锁)
  • Record Locks (记录锁)
  • Gap Locks (间隙锁)
  • Next-Key Locks
  • Insert Intention Locks (插入意向锁)
  • AUTO-INC Locks (自增锁)
  • Predict Locks for Spatial Indexes
Shared and Exclusive Locks

两种标准行级锁,共享(S)锁和排它(X)锁。

持有共享锁的事务可以读对应行;持有排它锁的事务可以修改或删除对应行。

Intention Locks

Record Locks

记录锁用于有索引的记录,例如SELECT c1 FROM t WHERE c1 = 10 FOR UPDATE; 阻止其它事务对t.c110的行进行插入、修改或删除操作。记录锁总是加在索引之上,即使表t没有索引,也会创建隐藏的clustered index