MySQL 事务四大特性 ACID
事务四大特性 ACID,是保障数据库事务可靠性、一致性的核心准则。
-
原子性(Atomicity) 事务中的所有操作,要么全部成功,要么全部失败回滚,绝对不会出现部分执行的情况。 - 实现原理:依靠 undo log(回滚日志)。执行过程中,所有修改都会记录反向操作,若事务失败,通过 undo log 将数据回滚到修改前的初始状态。
-
一致性(Consistency) 事务执行前后,数据库从一个一致状态转变为另一个一致状态,全程不破坏业务定义的完整性约束(外键、唯一索引、触发器等)。 - 核心:一致性是 ACID 的最终目标,原子性、隔离性、持久性均为保障一致性服务。- 示例:A转账给B,事务前后两人账户总金额保持不变。
-
隔离性(Isolation) 多个事务并发执行时,彼此之间互不干扰,每个事务独立运行、互相隔离。 - 实现原理:依靠 锁机制(行锁/表锁)+ MVCC 多版本并发控制,MVCC 底层依托 undo log 实现。
-
持久性(Durability) 事务一旦提交,对数据的修改永久保存;即便系统崩溃、断电,已提交的数据也不会丢失。 - 实现原理:依靠 redo log(重做日志)。宕机重启后,可通过 redo log 恢复所有已提交的修改。 一句话总结 原子性保证不半途而废,隔离性保证并发互不干扰,持久性保证宕机不丢数据,三者最终共同保障数据库的一致性。