MySQL事务的四大特性(ACID)
1.原子性(Atomicity)
事务是最小的执行单位,其包含的所有操作要么全部成功提交,要么全部失败回滚,保证事务不可分割。该特性通过 undo log(回滚日志)实现,日志记录了事务操作前的数据状态,用于在回滚时恢复原始数据。
2.一致性(Consistency)
事务执行前后,数据库必须始终保持数据的一致性状态,满足所有预定义的完整性约束(如主键、外键、业务规则等)。一致性并非由单一机制保障,而是依靠原子性、隔离性和持久性共同实现,确保数据从一个有效状态正确转换到另一个有效状态。
3.隔离性(Isolation)
数据库允许多个事务并发执行,隔离性确保事务之间互不干扰,各事务仿佛独立执行。常见的实现机制包括锁和 MVCC(多版本并发控制)。锁通过对资源加锁控制并发访问;MVCC 通过维护数据多个版本实现读写并行,兼顾并发性能与数据正确性。
4.一致性(Durability)
一旦事务提交,其对数据的修改即为永久性的,即使发生系统故障也不会丢失。该特性依赖 redo log(重做日志)实现,redo log 记录已提交事务的修改操作,系统恢复时可通过重做日志恢复数据。