InnoDB系列:锁

lock 和 latch的不同

InnoDB锁的类型

  • 共享锁(S Lock):允许事务读一行数据。
  • 排他锁(X Lock):允许事务删除或更新一行数据。

持有共享锁后还能获得共享锁,持有共享不能获得排他,持有排他不能获得其他锁。

还有两种意向锁

  • 意向共享锁(IS Lock):事务想获得一张表中某几行的共享锁
  • 意向排它锁(IX Lock):事务想要获得一张表中某几行的排他锁

一致性非锁定读

如果读取的行正在执行update或者delete操作,读取操作不会等待行上的锁释放,而是读取行的以个快照数据。

行锁

  1. Record Lock:单个行记录的锁
  2. Gap Lock:间隙锁,锁定一个范围,不包含本身
  3. Next-Key Lock:1+2,锁定一个范围,包含本身