CHARLIE SAYS

查理如是说
DATE 2026-08-24
THEME
SERIES / ENGINEERING / P-122 · 软件工程方法论

软件工程 002:事务理论 - ACID

事务理论是数据库设计的基石。本篇先看 ACID 的四个基本特性,再看它们在 MySQL 中分别靠什么机制来保证。

什么是 ACID

一个事务有四个基本特性,也就是我们常说的 ACID:

  • Atomicity(原子性):事务是一个不可分割的整体,事务内所有操作要么全做成功,要么全失败
  • Consistency(一致性):事务执行前后,数据从一个状态到另一个状态必须是一致的(A 向 B 转账,不能出现 A 扣了钱,B 却没收到)
  • Isolation(隔离性):多个并发事务之间相互隔离,不能互相干扰
  • Durability(持久性):事务完成后,对数据库的更改是永久保存的,不能回滚

ACID 靠什么保证的呢

以 MySQL 为例,四个特性各有对应的实现机制:

特性含义MySQL 中的保证机制
A - 原子性全做成功或全失败undo log 日志保证:它记录了需要回滚的日志信息,事务回滚时撤销已经执行成功的 SQL
C - 一致性状态迁移必须一致一般由代码层面来保证
I - 隔离性并发事务互不干扰MVCC 来保证
D - 持久性提交即永久生效内存 + redo log 来保证:MySQL 修改数据同时在内存和 redo log 记录这次操作,事务提交的时候通过 redo log 刷盘,宕机的时候可以从 redo log 恢复

分布式场景下事务的取舍,见后续的 分布式理论 - CAP分布式理论 - BASE

系列导航

← 设计模式 002:SOLID 设计原则 目录 Java 基础 002:知识点 →
← 返回文章列表