首页 笔记 图片 查字 
所属分类:MySQL
浏览:66
内容:

乐观锁和悲观锁都是数据库管理系统里面的一种并发控制的方法。

1. 乐观锁:乐观并发控制(Optimistic Concurrency Control,缩写OCC)
乐观锁假设多用户并发的事务在处理时不会彼此互相影响,各事务能够在不产生锁的情况下处理各自影响的数据。
但是在提交数据更新之前,每个事务会先检查在该事务读取数据后,有没有其他事务又修改了该数据。
如果其他事务有更新的话,正在提交的事务会进行回滚。

2. 悲观锁:悲观并发控制(Pessimistic Concurrency Control,缩写PCC)。
悲观锁指的是对数据被外界修改持保守态度(即悲观态度),所以在整个数据处理过程中,将数据处于锁定状态。

相对于悲观锁,乐观锁不会使用数据库提供的锁机制。
1 使用数据版本Version记录机制实现。
2 使用表中的时间戳字段来实现,就是在增加中增加一个时间戳字段,在更新提交的时候,判断旧时间戳和最新时间戳是否一致。