码迷,mamicode.com
首页 > 数据库 > 详细

数据库之事务隔离级别

时间:2015-05-18 20:07:49      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

事务是指一组逻辑操作单元,使数据从一种状态变换到另一种状态,对数据库的增删改查都是事务操作。

事务的4个特性(ACID):

原子性(Atomic):组成事务处理的语句形成了一个逻辑单元,不能只执行其中的一部分

一致性(Consistency):在事务处理执行之前和之后,数据是一致的

隔离性(Isolation):一个事务处理对另一个事务处理没有影响

持久性(Durabiliy):当事务处理成功执行到结束的时候,其效果在数据库中被永久纪录下来

 

对于同时运行的多个事务, 当这些事务访问数据库中相同的数据时, 如果没有采取必要的隔离机制, 就会导致各种并发问题: 

脏读: 对于两个事物 T1, T2, T1 读取了已经被 T2 更新但还没有被提交的字段. 之后, 若 T2 回滚, T1读取的内容就是临时且无效的. 

不可重复读: 对于两个事物 T1, T2, T1 读取了一个字段, 然后 T2 更新了该字段. 之后, T1再次读取同一个字段, 值就不同了. (主要提现在修改上

幻读: 对于两个事物 T1, T2, T1 从一个表中读取了一个字段, 然后 T2 在该表中插入了一些新的行. 之后, 如果 T1 再次读取同一个表, 就会多出几行.(主要提现在增加和删除上)

 

隔离级别

数据库事务的隔离级别有4个,由低到高依次为Read uncommitted、Read committed、Repeatable read、Serializable,这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。

 

√: 可能出现    ×: 不会出现

  脏读 不可重复读 幻读
Read uncommitted
Read committed ×
Repeatable read × ×
Serializable × × ×

 

数据库之事务隔离级别

标签:

原文地址:http://www.cnblogs.com/amei0/p/4512573.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!