数据库 ACID 四大特性(事务四大属性)

ACID 是 Atomicity、Consistency、Isolation、Durability 的缩写,用来保证数据库事务可靠执行,一个事务必须同时满足这四点。

1. A = Atomicity 原子性

事务是不可分割的最小单元,要么全部执行成功,要么全部失败回滚,不能半截执行。 例子:转账 A→B 100 元

  • A 扣 100、B 加 100 必须一起成功
  • 如果 A 扣钱后系统崩溃,必须撤销扣钱操作,两边金额恢复原样

2. C = Consistency 一致性

事务执行前后,数据整体约束、业务规则始终合法,数据不会出现非法中间状态。 承接转账例子:

  • 转账前后两人总金额不变
  • 不能出现钱凭空多 / 凭空消失、余额负数等不合规数据 原子性、隔离性、持久性最终都是为了保证一致性。

3. I = Isolation 隔离性

多个事务并发执行时,彼此之间互不干扰,一个事务看不到另一个事务未提交的脏数据。 并发会带来三类问题:脏读、不可重复读、幻读;数据库通过事务隔离级别控制隔离强度(读未提交、读已提交、可重复读、串行化)。

4. D = Durability 持久性

事务一旦提交成功,修改就永久写入磁盘,即使数据库宕机、断电、重启,修改的数据也不会丢失。 原理:提交时先写 redo 日志落盘,再刷数据页,崩溃后可通过日志恢复。

一句话总结

原子性保证要么全成要么全败;一致性保证数据永远合理;隔离性保证并发互不乱套;持久性保证提交永不丢失。