首页 电脑 电脑学堂 查看内容

Oracle 悲观锁VS乐观锁

2011-11-17 10:56 549 0

摘要: Oracle 悲观锁 VS 乐观锁 悲观锁:悲观地认为从取出数据到提交修改的过程中,别的线程已经把该数据修改了,会引发更新丢失,所以需要在取数据的时候锁定该行。 select ... for upda...
关键词: 悲观 数据 乐观 update Timestamp Number 线程 额外 过程 一些

Oracle 悲观锁 VS 乐观锁 悲观锁:悲观地认为从取出数据到提交修改的过程中,别的线程已经把该数据修改了,会引发更新丢失,所以需要在取数据的时候锁定该行。 select ... for update nowait; update ...; commit; 乐观锁:乐观地认为从取出数据到提交修改的过程中,别的线程不会修改这条数据,不需要在取出数据时就加锁。 需要做一些额外的处理,如多加一个字段(Number or Timestamp) select ...; update ... where number = old_number; update ... where timestamp = old_timestamp; 根据返回影响的行数判断更新是否成功。 当用户数比较少,并发不高时,悲观锁优势明显,不需要一些额外的处理。但对于并发程度很高的应用,悲观锁会成为性能瓶颈,应使用乐观锁。  
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部