温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ACID原则如何保证一致性

发布时间:2026-10-06 19:00:06 来源:亿速云 阅读:93 作者:小樊 栏目:数据库

在数据库系统中,ACID 是衡量事务可靠性的四个核心特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。
其中**一致性(Consistency)**是指:事务执行前后,数据库都必须处于“合法、正确”的状态(满足所有约束、规则和业务逻辑)。

下面说明 ACID 如何通过其他三个特性来共同保证一致性。


1. 原子性(Atomicity)→ 防止“半成品”破坏一致性

  • 原子性保证事务要么全部成功,要么全部失败回滚
  • 避免只执行了一部分操作(如转账扣了钱但没加钱)

例子:

A 转账 100 给 B
- 扣 A 100
- 加 B 100

如果中途崩溃:

  • 没有原子性 → A 少了钱,B 没多 → 不一致
  • 有原子性 → 回滚,数据恢复原状 → 一致

✅ 原子性是“一致性的一道防线”


2. 隔离性(Isolation)→ 防止并发导致逻辑错误

  • 多个事务并发执行时,彼此不可见中间状态
  • 避免“脏读、不可重复读、幻读”等问题

例子:

事务1:读取库存 = 10,扣 1
事务2:读取库存 = 10,扣 1

若没有隔离:

  • 两个事务都基于 10 扣库存
  • 最终库存 = 9(应为 8)→ 不一致

✅ 隔离性保证“并发下就像串行执行一样正确”


3. 持久性(Durability)→ 保证提交后不丢失

  • 一旦事务提交,结果永久保存
  • 即使系统崩溃、断电也不丢失

作用:

  • 防止“已一致的状态又被丢失”
  • 是最终一致性的“保险”

✅ 持久性保证“一致性不会被意外抹掉”


4. 一致性本身:由“规则 + ACID”共同维护

一致性不是数据库自动生成的,而是:

  • 数据库约束(主键、外键、唯一、CHECK)
  • 应用层业务逻辑
  • ACID 其他三性来保证执行过程不破坏规则

示例:

账户余额 ≥ 0
  • 原子性:避免只扣不减
  • 隔离性:避免并发超额扣款
  • 持久性:提交后余额真实有效
  • 一致性:最终满足“余额 ≥ 0”

总结一句话

一致性是目标,原子性、隔离性、持久性是手段。

ACID 通过:

  • 不执行“半截事务”
  • 不让并发互相干扰
  • 提交后绝不丢失
    来共同确保数据库始终处于正确、合法的状态。
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手