行锁和表锁的区别?

1.行锁(Row Lock):

a.锁定范围: 行锁是对表中的一行数据进行锁定,而不是锁定整个表。这意味着其他事务仍然可以访问表中的其他行,不受锁定行的影响。
b.适用场景: 适用于高并发读写的情况,允许多个事务同时访问表的不同行,降低了锁的争用。

2.表锁(Table Lock):

a.锁定范围: 表锁是对整个表进行锁定,当一个事务获取了对表的锁时,其他事务无法同时访问该表,即使它们要访问的是不同的行。
b.适用场景: 适用于需要保证整个表的一致性的场景,例如在对整个表进行大批量更新或者维护操作时。

3.粒度:

a.行锁: 锁定的粒度更细,只影响到实际需要修改的行,不会对表的其他部分产生影响。
b.表锁: 锁定的粒度更大,会阻塞对整个表的访问,可能导致并发性能下降。

4.性能:

a.行锁: 在高并发读写的场景中性能较好,因为允许多个事务同时访问表的不同行。
b.表锁: 在高并发写入的场景中可能会导致性能问题,因为需要等待对整个表的锁释放。

5.死锁风险:

a.行锁: 由于锁定的范围较小,死锁风险相对较低。
b.表锁: 由于锁定的范围较大,可能会增加死锁的风险,特别是在复杂的事务处理中。

  • 13
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bug丶小狼人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值