对事务的特性ACID的理解
对事务的特性ACID的理解 数据库的事务必须具备ACID特性,ACID是指 Atomicity(原子性)、Consistensy(一致性)、Isolation(隔离型)和Durability(持久性)的英文缩写。 1、 原子性(Atomicity ) 事务包装的一组sql ,要么都执行成功,要么都失败。这些操作是不可分割的。 2、 一致性(Consistency ) 数据库的数据状态是一致的。 事务的成功与失败,最终数据库的数据都是符合实际生活的业务逻辑。一致性绝大多数依赖业务逻辑和原子性。 3、 持久性:( Durability ) 事务成功提交之后,对于数据库的改变是永久的。哪怕数据库发生异常,重启之后数据亦然存在。 4、 隔离性(Isolation ) 一个事务的成功或者失败对于其他的事务是没有影响。2 个事务应该相互独立。 事务的隔离级别 如果不考虑事务的隔离性,由于事务的并发,将会出现以下问题: 1、脏读 -- 最严重,杜绝发生 2、不可重复读 3、幻读(虚读) 脏读:指一个事务读取了另外一个事务 未提交的数据。 一个事务读取了另一个事务没有提交的数据,非常严重。应当尽量避免脏读。 不可重复读:在一个事务内多次读取表中的数据,多次读取的结果不同。 幻读(虚读) 隔离级别:如何解决问题 l 数据库规范规定了4种隔离级别,分别用于描述两个事务并发的所有情况。 read