日期:2014-05-16  浏览次数:20403 次

事务的特性和隔离级别
  • 一个逻辑工作单元要成为事务,必须满足所谓的ACID属性

?1.原子性:指事务必须是原子工作单元,对于其数据修改,要么全都执行,要么全都不执行。

?2.一致性:指事务在完成时,必须使所有的数据都保持一致状态。

?3.隔离性:指由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。

?4.持久性:指事务完成之后,对于系统的影响具有永久性。

?

  • 事务准备接受不一致数据的级别称为隔离级别

事务隔离级别的含义:是否在读数据时使用锁,读锁持续多长时间,在读数据时使用何种类型的锁,读操作希望读已经被其他事务用排他锁锁住的数据时,有如下解决方法(一直等到其他事务释放锁;读没有提交的数据;读数据最后提交后的版本)

?

4种隔离级别:

1.未提交读:在读数据时不会检查或使用任何锁。因此,在这种隔离级别中可能读取到没有提交的数据。

2.已提交读:只读取提交的数据并等待其他事务释放排他锁。读数据的共享锁在读操作完成后会立即释放。

3.可重复读:像已提交读级别那样读数据,但会保持共享锁直到事务结束。

4.可序列化:工作方式类似于可重复读。但它不仅会锁定受影响的数据,还会锁定这个范围,这就阻止了添加新数据以及查询数据所涉及的范围,这种情况可以导致幻象读。

?

?