
MySQL(以 InnoDB 引擎为例)中事务的四大特性(ACID)是通过以下机制实现的,下面是简单明了的说明方式:
⸻
✅ 1. 原子性(Atomicity)
事务要么全部执行,要么全部不执行。
• 实现机制:Undo Log(回滚日志)
• 执行前记录 Undo Log,若事务失败,可通过 Undo Log 回滚到原始状态。
⸻
✅ 2. 一致性(Consistency)
事务执行前后,数据库保持一致性状态(满足约束条件)。
• 实现机制:由事务机制整体保证(主要依赖 Undo Log + 锁机制)
• 回滚保证不违反约束;
• 提交时更新数据保证符合外键、唯一等约束;
• 一般由数据库的内部校验机制和业务逻辑共同保证。
⸻
✅ 3. 隔离性(Isolation)
多个事务之间相互隔离,互不干扰。
• 实现机制:锁机制(行锁)+ MVCC(多版本并发控制)
• 不同隔离级别下使用快照读(MVCC)或加锁读(锁机制)实现隔离;
• 如 REPEATABLE READ 通过 MVCC 提供一致快照。
⸻
✅ 4. 持久性(Durability)
事务一旦提交,对数据库的更改是永久性的。
• 实现机制:Redo Log(重做日志)
• 提交前先写入 Redo Log,崩溃恢复时可通过 Redo Log 进行重做,保证已提交数据不会丢失。
📌 汇总表


1823

被折叠的 条评论
为什么被折叠?



