文档章节

七:Mysql的乐观锁与悲观锁机制

四月李
 四月李
发布于 2017/02/13 22:40
字数 381
阅读 49
收藏 0

悲观锁:

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

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

乐观锁:

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

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

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

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

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

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

© 著作权归作者所有

共有 人打赏支持
四月李
粉丝 16
博文 59
码字总数 50238
作品 0
成都
程序员
MySQL数据库的锁机制

在并发访问情况下,很有可能出现不可重复读等等读现象。为了更好的应对高并发,封锁、时间戳、乐观并发控制(乐观锁)、悲观并发控制(悲观锁)都是并发控制采用的主要技术方式。 锁分类 ①、按操...

Javahih
01/02
0
0
深入理解乐观锁与悲观锁

在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。 乐观并发控制(乐观锁)和...

Hosee
2016/06/01
356
0
深入理解乐观锁与悲观锁

在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。 乐观并发控制(乐观锁)和...

LYQ1990
2016/04/29
93
0
悲观锁和乐观锁

锁有两种机制:悲观锁和乐观锁。 悲观锁 悲观锁,锁如其名,他对世界是悲观的,他认为别人访问正在改变的数据的概率是很高的,所以从数据开始更改时就将数据锁住,直到更改完成才释放。 一个...

花开半夏qb
2017/09/25
0
0
mysql事务和锁 SELECT FOR UPDATE

事务: 当然有的人用begin /begin work .推荐用START TRANSACTION 是SQL-99标准启动一个事务。 当用set autocommit = 0 的时候,你以后所有的sql都将作为事务处理,直到你用commit确认或 ro...

SibylY
2016/08/22
172
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

[MicroPython]STM32F407开发板驱动OLED液晶屏

1.实验目的 1.学习在PC机系统中扩展简单I/O 接口的方法。 2.进一步学习编制数据输出程序的设计方法。 3.学习 F407 Micropython开发板控制OLED显示字符。 2.所需元器件 F407 Micropython开发板...

bodasisiter
33分钟前
0
0
php require和include 相对路径一个有趣的坑

以前总是被教育,不要使用相对路径,这样性能比较差,但是相对路径的问题不仅仅是性能哦,看下面这里例子 这是项目结构 .├── main.php├── t│ ├── t1.php│ └── t2.php└─...

anoty
34分钟前
17
0
x64技术之SSDT_Hook

测试环境: 虚拟机: Windows 7 64bit 过PG工具 驱动加载工具 PCHunter64 系统自带的计算器和任务管理器等 实现思路: 实际思路与win32的思路一样.都是替换SSDT表里边的函数地址.不过微软被搞怕...

simpower
35分钟前
0
0
TreeMap源码分析,看了都说好

一、简介 TreeMap最早出现在JDK 1.2中,是 Java 集合框架中比较重要一个的实现。TreeMap 底层基于红黑树实现,可保证在log(n)时间复杂度内完成 containsKey、get、put 和 remove 操作,效率很...

Java小铺
45分钟前
0
0
协变、逆变

概念 假设 A、B表示类型 ≤ 表示继承关系 f<⋅>表示类型转换 若A ≤ B,则 A是B的子类,B是A的超类 协变、逆变 什么是型变?型变(type variance)允许对类型进行子类型转换。 为了下面讲解先...

obaniu
51分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部