1.查看存储引擎 show engines;

mysql 行锁升级到表锁示例

2.数据结构

mysql 行锁升级到表锁示例

3.根据id(主键)更新同一条数据,A事务产生行锁,B事务执行被阻塞,需要提交A事务后才能执行,如果长时间未提交事务,B事务会导致超时:ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

mysql 行锁升级到表锁示例

4.根据非索引条件更新,A事务产生表锁,B事务执行被阻塞。

mysql 行锁升级到表锁示例

总结:InnoDB的行锁是针对索引加的锁,不是针对记录加的锁。当更新条件没有使用索引时,行锁升级为表锁。

相关文章:

  • 2022-01-30
  • 2021-05-03
  • 2022-12-23
  • 2021-12-07
  • 2021-12-14
  • 2021-09-06
猜你喜欢
  • 2021-07-14
  • 2021-06-21
  • 2022-12-23
  • 2022-02-05
  • 2022-01-11
  • 2022-01-13
相关资源
相似解决方案