一.行锁是一种悲观锁
为防止被其他人修改。同一时间只能单向进行修改操作
1.假设数据会被其他人修改,先把坑占了
2.先上锁,再更新,完成后释放锁
3.适合写多和写冲突比较多的场景
使用方法:
在数据库事务中锁定操作行可使用 for update
例:select * from t where id = ? for update
优点:稳定可靠,不会出现超卖
缺点:
1.需要查询和计算:性能差、锁阻塞等待
2.锁阻塞等待会导致客户端延迟或超时
二.乐观锁
1.假设数据不会被其他人修改,只有自己操作时验证一下
2.CAS:先比较,再更新
3.适合写少和写冲突少的场景
case
    when 列名= 条件值1 then 选项1
    when 列名=条件值2 then 选项2…
    else 默认值 end
  例:
  事务锁方案
   根据这个国家人口数据,统计各个大洲的人口数量
   事务锁方案

相关文章:

  • 2022-02-06
  • 2022-12-23
  • 2021-11-04
  • 2022-12-23
  • 2021-10-30
  • 2021-08-28
  • 2021-04-27
  • 2021-06-28
猜你喜欢
  • 2021-04-25
  • 2022-12-23
  • 2021-12-30
  • 2021-11-15
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案