事务特性
1.原子性
程序对于数据的一系列操作,要么全做,要么全不做。
2.一致性
一致性是指事务开始之前和结束之后,数据库的完整性约束不能被破坏。
3.隔离性
多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其它事务运行效果。由数据库提供隔离级别。
4.持久性
保证已提交的事务更新不会丢失。
事务之间的影响
脏读:
脏读意味着一个事务读取了另一个事务未提交的数据,而这个数据是有可能回滚的;如下案例,此时如果事务1回滚,则B账户必将有损失。
不可重复读:
同一个事务里读取了两次数据,数据的结果不一致。这是因为查询时其他事务对数据进行更改造成的。
幻读:
是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样.
丢失更新:
两个事务同时读取同一条记录,A先修改记录,B也修改记录(B是不知道A修改过),B提交数据后B的修改结果覆盖了A的修改结果。