事务的四个特性(属性) ACID:
- Atomic,原子性,要么一起成功,要么回滚什么都不做
- Consistent,一致性,数据库从一个一致性状态变到另一个一致性状态
- Isolation,隔离性,多个并发事务之间不会相互干扰
- Duration,持久性,事务一旦提交,对数据库的变化就应该是永久的
ACID
- Atomicity,原子,不可分隔,事务包含的所有操作要么成功要么失败
- Consistency,一致性,完整性约束没有破坏,以转账为例,A、B用户账户余额加起来 5000,那么不管 A,B转账多少次,总和应该不变
- Isolation,隔离性,事务提交前,其他事务不可见,并发访问时,事务间隔离,MySQL 通过锁机制来保证事务的隔离性
- 事务未提交的结果是否对其他事务可见
- 读未提交
- 读已提交
- 可重复读
- 序列化
- Durability,持久性,事务一旦提交,则其结果就是永久性的。即使数据库发生故障,也不会丢失提交的事务。MySQL 使用 redo log 来保证事务的持久性