一、ACID 分别是什么(先背定义)
• A:原子性(Atomicity)
事务是一个不可分割的最小单元,要么全部成功,要么全部回滚。
• C:一致性(Consistency)

事务执行前后,数据的完整性约束不变,数据库始终从一个一致状态到另一个一致状态。
• I:隔离性(Isolation)
多个事务并发执行时,互相不干扰,一个事务看不到另一个事务的中间状态。
• D:持久性(Durability)
事务一旦提交,对数据的修改就是永久的,宕机、重启也不会丢失。
二、ACID 分别靠什么实现?(面试核心加分项)
1. 原子性 A → undo log(回滚日志)
• 执行操作前先记录 undo log
• 事务失败时,根据 undo log 回滚所有操作
• 保证“要么全做,要么全不做”
2. 持久性 D → redo log(重做日志)
• 提交前先写 redo log 落盘
• MySQL 宕机重启后,通过 redo log 恢复已提交事务
• 配合 WAL 预写日志机制保证数据不丢
3. 隔离性 I → 锁 + MVCC
• 写与写之间:靠行锁、表锁互斥
• 读与写之间:靠 MVCC(多版本并发控制)实现无锁读写
• 配合不同隔离级别,解决脏读、不可重复读、幻读
4. 一致性 C → A + I + D 共同保证
• 一致性是最终目标
• 原子性、隔离性、持久性三者一起,才能保证数据一致
• 外加外键、约束、业务代码校验辅助
三、一句话面试标准答案
事务 ACID 四大特性:
原子性由 undo log 保证,
持久性由 redo log 保证,
隔离性由锁和 MVCC 实现,
一致性是最终结果,由 AID 共同保障。
那些独自啃透的晦涩原理,终会在无人喝彩的日子里,撑起你独当一面的底气。