文档章节

悲观锁 和 乐观锁

文心丶雕龙
 文心丶雕龙
发布于 2016/07/01 11:01
字数 413
阅读 60
收藏 8

        悲观锁(Pessimistic Lock), 顾名思义,就是对数据的一致性很悲观,每次去拿数据(无论是读数据还是写数据)的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。

        乐观锁(Optimistic Lock), 顾名思义,就是对数据的一致性很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。乐观锁适用于多读的应用类型,这样可以提高吞吐量,像数据库如果提供类似于write_condition机制的其实都是提供的乐观锁。

        两种锁各有优缺点,不可认为一种好于另一种,像乐观锁适用于写比较少,读比较多的情况下,即冲突真的很少发生的时候,这样可以省去了锁的开销,加大了系统的整个吞吐量。但如果经常产生冲突,上层应用会不断的进行retry,这样反倒是降低了性能,所以这种情况下用悲观锁就比较合适,即更新数据比较频繁的应该用悲观所.

 

© 著作权归作者所有

共有 人打赏支持
文心丶雕龙
粉丝 8
博文 43
码字总数 30481
作品 0
杭州
程序员
.NET:处理数据库事务中的并发

原帖地址:http://c.jinhusns.com/u/%E7%94%9F%E6%B4%BB/b-183 概述 几乎所有的企业应用程序都有多个用户和后台线程,它们可以同时更新数据库。两个数据库处理事务同时访问同一份数据的情形很...

whp610
2013/09/02
416
0
MySQL数据库的锁机制

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

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

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

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

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

LYQ1990
2016/04/29
93
0
乐观锁与悲观锁区别

悲观锁(Pessimistic Lock) 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里...

小湘西
2016/03/28
98
0

没有更多内容

加载失败,请刷新页面

加载更多

误删除innodb ibdata数据文件恢复

今天在群里看到有人说不熟悉innodb把ibdata(数据文件)和ib_logfile(事务日志)文件误删除了。不知道怎么解决。当时我也不知道怎么办。后来查阅相关资料。终找到解决方法。其实恢复也挺简单...

IT--小哥
19分钟前
1
0
常见设计模式UML图

常见设计模式UML图 本文主要总结常见的设计模式的UML图,方便查阅和思考。 创建型模式 简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式和单例模式,这五种设计模式主要处理对象的创建...

陶小陶
37分钟前
1
0
分布式缓存架构设计

零、 题记 在高并发场景下,需要通过缓存来减少数据库的压力,使得大量的访问进来能够命中缓存,只有少量的需要到数据库层。由于缓存基于内存,可支持的并发量远远大于基于硬盘的数据库。所以...

Ala6
38分钟前
2
0
简单工厂模式

简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一...

NinjaFrog
40分钟前
1
0
git(一) 基本操作(branch、tag、冲突)

layout: blog istop: true title: "git基本操作(branch、tag、冲突)" date: 2018-09-11 category: 版本控制 tags: - 版本控制 撤销操作 修改最后一次提交 解释:修改上次提交。可以修改内容...

开心的哈士奇
43分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部