一 事务的概念
- 事务是满足ACID特性的一些列操作,是应用程序在执行时严密的操作,所有的操作必须成功,否则全部回滚,MySQL中可以通过commit提交事务,可以通过rollback回滚事务。
二 事物的ACID特性
- 原子性(Atomic):一个事务要么全部执行成功,要么全部失败回滚,不能成功执行一部分,即可理解为事务时原子性,不可分割的
- 一致性(Consist):事务执行的前后系统总的状态不变,举例两个人之间发生转账事务,转账前后两者金额金额不变
- 隔离性(lsolated):指在高并发的环境下,并发执行的事务之间相互隔离,任一个事务的执行过程不被其他事务所干扰
- 持久性(Durable):在事务完成后,该事务的更改永久保存在数据库中,不可回滚
三 多事务执行过程中出现的问题
- 脏读:一个事务在未提交状态时,被其他事务所读取其未提交的数据
- 不可重复读:某一个事务读取另外一个事务的过程中,另外一个事务发生更变,导致多次读取的内容不一致
(MySQL中可为某一行数据发生改变update,读取的数据不一样) - 幻读