Skip to content

悲观锁语句

当前读与锁

  • SELECT ... FOR UPDATE:对匹配行加 排他锁,其它事务不能改,可读取决于隔离级别。
  • SELECT ... FOR SHARE(或 LOCK IN SHARE MODE):共享锁,他人可读、改需等待。

使用场景

  • 先查再改 需原子性时,在事务内 FOR UPDATEUPDATE,避免丢失更新。
  • 注意 锁等待超时innodb_lock_wait_timeout

风险

  • 长事务 + 大范围 FOR UPDATE 易导致 阻塞与死锁;优先 单条 UPDATE ... WHERE乐观锁版本号