数据库事务(Transaction)如何实现?ACID特性怎么保证?
事务用于保证多个数据库操作的原子性,其ACID特性要求:
- Atomicity(原子性):全部成功或全部回滚。
- Consistency(一致性):事务前后数据符合约束(如外键)。
- Isolation(隔离性):并发事务互不干扰。
- Durability(持久性):提交后即使崩溃也不丢失。
ACID特性 | 技术实现方案 |
---|---|
原子性 | 通过Undo Log回滚未完成事务;单条SQL自动视为事务。 |
一致性 | 在事务开始/结束时检查触发器、唯一索引等约束条件。 |
隔离性 | 设置隔离级别(如READ COMMITTED );MVCC多版本并发控制。 |
持久性 | 先写入Redo Log再修改内存数据;fsync() 强制刷盘。 |
分布式事务 | 使用2PC(两阶段提交)或TCC(Try-Confirm-Cancel)模式。 |
更新时间:2025-07-22 15:17:47