更新丢失问题

问题描述:
  两个线程基于同一个查询结果进行修改,后修改的人会将先修改人的修改覆盖掉.

悲观锁:

  悲观锁悲观的认为每一次操作都会造成更新丢失问题,在每次查询时就加上排他锁
 手动加排它锁:
  例:
    Select stat from xxx where id = 1 for update;
    缺点:查询效率低下

乐观锁:

  乐观锁会乐观的认为每次查询都不会造成更新丢失.利用一个版本字段进行控制
  表中加入版本字段version
  例:
    update order set stat=1 and version = version+1
    where id = 1 and version =0 ;
这里写图片描述

使用建议:

查询非常多,修改非常少 —————> 使用乐观锁

修改非常多,查询非常少 —————> 使用悲观锁

转载于:https://www.cnblogs.com/shiguangmanbu2016/p/5932897.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值