七:Mysql的乐观锁与悲观锁机制
七:Mysql的乐观锁与悲观锁机制
四月李 发表于1年前
七:Mysql的乐观锁与悲观锁机制
  • 发表于 1年前
  • 阅读 43
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

悲观锁:

    开始在执行前就会认为数据可能出现竞争,直接加锁,它是依靠数据库的锁来实现,但是缺点也很明显:

如果悲观锁加锁的时间过长,其他用户就会无法访问,大大降低了程序的并发性能,因为依靠数据库的锁来实现,所以数据库的开销也会比较大。所以有了乐观锁的实现

乐观锁:

    相对于悲观锁来说,乐观锁会认为数据开始不会发生竞争,只有在数据进行更新提交的时候,才会对数据进行冲突检查,如果冲突了就会返回冲突信息,那么一般是如何实现的,主要有一下两种:

1:通过版本号的方式控制

在查询的时候查询出旧的version,在更新的时候会对旧的version进行加1操作,在数据更新的时候,通过where条件进行判断,版本号是不是和预期的一致,如果不是返回错误,如果是的话直接更新。

2:通过其他字段,比如时间戳方式

以时间戳的方式,和版本号差不多,不过就是时间戳是实时获取的,更新的时候对于时间戳。

但是在乐观锁环境中可能出现用户提交不成功一致提交的过程,也会降低系统的性能

标签: 乐观锁 悲观锁
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 15
博文 59
码字总数 50238
×
四月李
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: