事务的四个特性(属性) ACID:

  • Atomic,原子性,要么一起成功,要么回滚什么都不做
  • Consistent,一致性,数据库从一个一致性状态变到另一个一致性状态
  • Isolation,隔离性,多个并发事务之间不会相互干扰
  • Duration,持久性,事务一旦提交,对数据库的变化就应该是永久的

ACID

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