什么是 ACID:事务的四个核心属性

副标题 / 摘要 ACID 是关系型数据库事务的核心语义。本文解释原子性、一致性、隔离性、持久性,并说明工程上的取舍。 目标读者 使用关系数据库的后端工程师 需要理解事务语义的开发者 负责数据可靠性的技术负责人 背景 / 动机 事务保证系统在故障与并发条件下保持一致性。 不了解 ACID,会导致错误的并发假设与数据不一致。 核心概念 原子性(Atomicity):要么全部成功,要么全部失败 一致性(Consistency):事务前后保持约束成立 隔离性(Isolation):并发事务互不干扰 持久性(Durability):提交后结果持久保存 实践指南 / 步骤 选择合适隔离级别(读已提交/可重复读等) 明确业务一致性约束(唯一性、外键、余额不为负等) 在关键路径使用事务 避免事务过大,减少锁竞争 理解数据库的实现细节(MVCC/日志) 可运行示例 BEGIN; UPDATE accounts SET balance = balance - 100 WHERE id = 1; UPDATE accounts SET balance = balance + 100 WHERE id = 2; COMMIT; 解释与原理 ACID 的核心是“在并发与故障下保持一致性”。 实现依赖日志、锁、MVCC 等机制,因此隔离性往往伴随性能成本。 常见问题与注意事项 一致性一定由数据库保证吗? 不一定,业务规则也需应用层保证。 更高隔离级别一定更好吗? 不一定,可能造成性能下降与锁等待。 NoSQL 就没有 ACID 吗? 有些系统支持局部 ACID,但往往有取舍。 最佳实践与建议 事务只包围必要的关键操作 明确隔离级别,避免误解 用监控观察锁等待与事务时长 小结 / 结论 ACID 是事务语义的基石,但并不等于“免费”。 在一致性与性能之间需要做工程取舍。 参考与延伸阅读 PostgreSQL Transaction Isolation MySQL InnoDB MVCC Database System Concepts 元信息 阅读时长:7~9 分钟 标签:ACID、事务、数据库 SEO 关键词:ACID, Transaction, Isolation 元描述:解释 ACID 的四个属性及工程意义。 行动号召(CTA) 检查一次核心交易逻辑的事务边界,看看是否覆盖了所有一致性约束。

2026年1月24日 · 1 分钟 · map[name:Jeanphilo]