MySQL如何为查询操作加锁

 时间:2024-10-14 04:42:40

1、为查询的行记录加共享锁在MySQL数据库中,锁分为两种,共享锁(S锁)和排他锁(X锁),共享锁即一条记录可以加多把该类型的锁。注意,锁必须在一个事务内部使用。图1示,通过在 se造婷用痃lect 语句后面添加 lock in share mode 即可以为结果集的所有记录添加共享锁。图2示,在一个会话中为某一条记录添加了一把共享锁,在另一个会话中,还可以为相同记录再加一把共享锁。

MySQL如何为查询操作加锁MySQL如何为查询操作加锁

2、为查询的行记录加排他锁排他锁名如其意,一条记录只可加一把排他锁。图1示,在一个事务内,通过在 select 查询语句后面使用 for update 即可为查询获取的行记录添加排他锁。图2示,重新打开一个会话,再次尝试为相同的记录添加排他锁,操作被挂起阻塞,当前一个事务提交或等待超时后,这个操作才会继续。图3示,后面那个尝试加排他锁的事务等待超时而退出

MySQL如何为查询操作加锁MySQL如何为查询操作加锁MySQL如何为查询操作加锁

3、排他锁与共享锁也无法共存上一步骤演示了如何加排他锁,并且无法为同一条记录添加多个排他锁,同样,排他锁也无法和共享锁共存。图1示:在一个事务内,为一条记录添加一个排他锁。图2示:在另一个事务内,尝试为这条记录添加一个共享锁,操作被挂起图3示:将前一个事务提交图4示:后一个被阻塞的事务成功返回,为相应记录添加了共享锁

MySQL如何为查询操作加锁MySQL如何为查询操作加锁MySQL如何为查询操作加锁MySQL如何为查询操作加锁

4、MySQL Innodb 存储引擎查询加锁总结1. 默认 select 操作不加锁,通过 MVCC 来实现事务的隔离2. 通过在 select 语句后面加 lock in share mode 为查询结果集添加共享锁3. 通过在 select 语句后面加 for update 为查询结果集添加排他锁

  • 怎么在flash中制作一个梯形的图形
  • 灵魂潮汐怎么设置角色为看板娘
  • 黑魂1暗月灵庙怎么进
  • 最强蜗牛六维总值怎么提升
  • 无人医院密室逃脱攻略第二章#校园分享#
  • 热门搜索
    生育险有什么用 儿童电动车什么牌子好 红糖的功效与作用 什么叫假性近视 运动会方队 玻尿酸的作用与功效 高铁跟动车有什么区别 什么是多普勒效应 幼儿园大班运动会项目 安化黑茶的功效与作用