博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
七:Mysql的乐观锁与悲观锁机制
阅读量:6418 次
发布时间:2019-06-23

本文共 476 字,大约阅读时间需要 1 分钟。

hot3.png

悲观锁:

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

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

乐观锁:

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

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

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

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

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

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

转载于:https://my.oschina.net/u/1034481/blog/837932

你可能感兴趣的文章
Low Level Reader Protocol (LLRP) 简介
查看>>
[Micropython]TPYBoard v10x NRF24L01无线通讯模块使用教程
查看>>
mysql中show processlist过滤和杀死线程
查看>>
最新Sublime Text 2 激活 汉化
查看>>
基础数据类型之字典
查看>>
第七次作业
查看>>
Oracle中NVARCHAR2与VARCHAR2的区别
查看>>
php debug
查看>>
Ubuntu构建LVS+Keepalived高可用负载均衡集群【生产环境部署】
查看>>
lvm实现快速备份文件及数据库,lvm快照原理
查看>>
设计模式之Factory Method(工厂方法)
查看>>
10K入职linux运维岗位小伙伴感谢信及面试经历分享
查看>>
zookeeper入门之Curator的使用之几种监听器的使用
查看>>
[转]Reporting Service部署之访问权限
查看>>
innerxml and outerxml
查看>>
validform校验框架不显示错误提示
查看>>
flink 获取上传的Jar源码
查看>>
Spring Data JPA Batch Insertion
查看>>
UEditor自动调节宽度
查看>>
JAVA做验证码图片(转自CSDN)
查看>>