事务的概念
事务就是一系列的操作,所有的操作必须全都正确执行,否则就会撤销前面所有的操作,这也就体现了事务的原子性,要么都做,要么都不做。 事务结束有两种形式:1、事务中的操作全部正确执行,事务结束;2、事务中的有的操作未正确执行,就会发生事务的回滚,撤销之前的所有操作。
事务的特性
ACID
原子性 atomicity 是指事务是最小的工作单元,所有的事务中的操作要么全都做,要么全都不做。
一致性 consistency 是指数据库永远是从一种一致性的状态转移到另一种一致性的状态。例如,当我们网银行中存款时,如果存款失败,发生回滚,但是银行中的钱是不变的,这也就是数据库中的数据不会受事务失败的影响。
隔离性 isolation 是指事务在开启的时候不会受其他事务的影响,多种事务之间没有关联
持久性 durability 是指一旦事务提交成功,数据库中的数据就不会发生改变
事务的并发问题
脏读 是指A事务读到B事务尚未提交的数据,并且在这个数据的基础之上对数据做了操作。如果恰巧B事务回滚,则A事务读到的数据就是无效的
不可重复读 是指A事务读到B事务已提交的更改的数据,和A事务刚开始开启事务时读到的数据不同。
幻读 是指A事务读取到B事务提交的更新数据,然后在一次读的时候和开始的不一样,新增加了一条,这时候就像是出现了幻觉一样。
不可重复读和幻读的区别在于:幻读是指读到了其它已经提交的事务中新添加的一条数据,不可重复读是指读到了已提交的事务的增删改的一些数据