乐观锁、悲观锁简单分析,回忆旧(新)知识...

微笑、不失礼 提交于 2019-11-30 16:42:36

今天被人问了下乐观锁和悲观锁,突然在脑子里好模糊,但又感觉以前很熟悉的东西竟然忘得这么干净。所以恶补加记录一下。

乐观锁和悲观锁是对于数据库并发情况下产生的两个对立的概念,所以首先确认一点 并发!并发!才存在这两个概念,他们是对并发数据库操作不同的处理方式。

乐观锁:乐观的认为不会发生并发冲突,依赖新增字段(version,你可以起一个其它的名字)来检验数据的合法,举例:查询数据 后,对version+1操作,然后修改记录 where 条件 version(当前)小于传递回来的值才修改,否则放弃修改。

悲观锁:悲观的认为所有的操作都会发生并发冲突,因此只能以数据库自身的锁才能实现,对资源的强占有。举例:在对任意记录进行修改前,先尝试为该记录加上排他锁(exclusive locking)。

从上述简介:能看出,很明显的区别,可以根据自己的页面进行选择,但还有一点必须明白,悲观锁会导致性能大幅度下降。

qq技术交流群:208779755
个人公众号:海涛聊技术

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!