代码改变世界

回头整理

2014-12-23 19:18  wangduqiang  阅读(97)  评论(0编辑  收藏  举报

事务. 脏读. 幻读. 不可重复读.

DB锁定策略.并发性.

乐观锁.悲观锁.

select for update

http://www.cnblogs.com/chenwenbiao/archive/2012/06/06/2537511.html

http://www.cnblogs.com/gengyulong/archive/2011/04/07/2007586.html

 

回头整理

一个用户要update一条数据.这时候另一个用户也有修改它.这个时候如果不做控制就会有问题.比如

用户1 把100 减20,改成了80  用户2 在用户1查询到记录后(或前).更新数据前查到的数据.是100. 用户2

要做减20 改成了80.用户2在用户1提交更新后更新     实际结果就是用户1改成80之后. 用户2 把80改成80.

其实应该是减40变成60的.

如果是select for update就行了.如上图.用户1 select for update .这时候用户2update会等待这个记录的锁被释放. 用户1 selectfor update后在commit或rollback之前记录会一直锁着. commit或rollback后释放锁

 

(这两天看一个名词动态查询.好拽的词.看了才知道是什么.这也值得起个名?)