Skip to content

ACID靠什么保证

约 339 字大约 1 分钟

每日一问数据库

2025-10-26

ACID有四个特性,原子性、隔离性、持久性、一致性。

分别由undo log日志、锁和MVCC机制、redolog日志保证


原子性

原子性是由undo log日志文件进行保证的,出现异常时,根据undo log日志记录的历史操作进行事务回滚。

(undolog本身的产生也会被记录到redolog日志里,以确保在系统崩溃恢复时,undo log是完整可用的,从而能够成功完成回滚操作。)

隔离性

隔离性是由各种锁和MVCC机制保证的,锁解决了写和写的冲突,MVCC机制的undo日志版本链和Read view机制解决了读和写的冲突,保证了哪些数据对事务是可见的,哪些是不可见的。

持久性

持久性是主要是由redolog日志保证的,执行顺序是,数据先写入redolog,但标记为prepare状态,然后再写入binlog日志,写入binlog日志之后才会将redolog日志里的信息标记为commit。保障了在数据库服务崩溃时,可以快速根据redolog日志记录的数据进行恢复。

一致性

一致性是由其他三个特性和业务实现代码保证的。