使用Read Committed级别的隔离机制会出现的问题

来源:互联网 发布:外汇行情看盘软件 编辑:程序博客网 时间:2024/05/24 08:33

使用Read Committed级别的隔离机制会出现的问题:
1. 虚读:
  该问题由一个事务读到另一个事务已提交的新插入数据引起的;导致连续两次从数据库中查询的结果集不一致
2. 不可重复读:
  该问题由一个事务读到另一个事务已经提交的更新数据引起的,导致每一次查询出来的同一条记录都不一样。
3. 第二类丢失数据:
  这是不可重复读的特例,该问题由一个事务覆盖另一个事务已提交的更新数据引起的,导致最后一一个事务对记录所做的更改覆盖其他事物对该记录已提交的更新。
  
对于上面出现的问题,可以使用乐观锁和悲观锁来避免。
–悲观锁:悲观锁假定当多个事务同时访问一个资源时,会出现以上问题。因而为了避免这些问题,每个事务在操作一个资源时,都先把资源锁起来,这样就完全排除了当前事务受其他事务的影响,但是使用悲观锁影响并发性能,所以应该谨慎。
–乐观锁:乐观锁假定多个并发事务访问一个资源时,靠数据库管理系统自身的锁机制就可以有效地避免这些问题。因而它主要依靠数据库的隔离级别来自动管理锁的工作。一旦出现以上问题,乐观锁会使用版本控制的手段来发现这些问题,并抛出异常,从而有效地避免不良后果的发生。

阅读全文
0 0
原创粉丝点击