数据库 · 主观题 · 第 46 题
计算机基础面试八股 · 第 46 题
事务的 ACID 分别指什么?InnoDB 是如何保证它们的?
参考答案
1. 原子性(Atomicity):事务要么全部成功,要么全部回滚。InnoDB 用 undo log 记录修改前的值,回滚时逆向恢复。
2. 一致性(Consistency):事务前后数据满足约束和业务规则。它是目的,靠其余三者加上应用层约束共同保证。
3. 隔离性(Isolation):并发事务互不干扰。InnoDB 用锁(记录锁、间隙锁、临键锁)和 MVCC(Read View + undo 版本链)实现四种隔离级别。
4. 持久性(Durability):提交后的数据不丢。InnoDB 用 redo log 预写日志(WAL),提交时按 innodb_flush_log_at_trx_commit 刷盘,崩溃后重做;双写缓冲(doublewrite)防止页写一半;与 binlog 两阶段提交保持一致。
解析
每个字母都要对应到具体机制:undo、锁+MVCC、redo。