数据库事务的四大特性(面试高频:MySQL事务 ACID 特性是什么?一篇讲透)

数据库事务的四大特性(面试高频:MySQL事务 ACID 特性是什么?一篇讲透)
面试高频:MySQL事务 ACID 特性是什么?一篇讲透

一、ACID 分别是什么(先背定义)

• A:原子性(Atomicity)

事务是一个不可分割的最小单元,要么全部成功,要么全部回滚。

• C:一致性(Consistency)

数据库事务的四大特性(面试高频:MySQL事务 ACID 特性是什么?一篇讲透)

事务执行前后,数据的完整性约束不变,数据库始终从一个一致状态到另一个一致状态。

• I:隔离性(Isolation)

多个事务并发执行时,互相不干扰,一个事务看不到另一个事务的中间状态。

• D:持久性(Durability)

事务一旦提交,对数据的修改就是永久的,宕机、重启也不会丢失。

二、ACID 分别靠什么实现?(面试核心加分项)

1. 原子性 A → undo log(回滚日志)

• 执行操作前先记录 undo log

• 事务失败时,根据 undo log 回滚所有操作

• 保证“要么全做,要么全不做”

2. 持久性 D → redo log(重做日志)

• 提交前先写 redo log 落盘

• MySQL 宕机重启后,通过 redo log 恢复已提交事务

• 配合 WAL 预写日志机制保证数据不丢

3. 隔离性 I → 锁 + MVCC

• 写与写之间:靠行锁、表锁互斥

• 读与写之间:靠 MVCC(多版本并发控制)实现无锁读写

• 配合不同隔离级别,解决脏读、不可重复读、幻读

4. 一致性 C → A + I + D 共同保证

• 一致性是最终目标

• 原子性、隔离性、持久性三者一起,才能保证数据一致

• 外加外键、约束、业务代码校验辅助

三、一句话面试标准答案

事务 ACID 四大特性:

原子性由 undo log 保证,

持久性由 redo log 保证,

隔离性由锁和 MVCC 实现,

一致性是最终结果,由 AID 共同保障。

那些独自啃透的晦涩原理,终会在无人喝彩的日子里,撑起你独当一面的底气。

文章版权声明:除非注明,否则均为边学边练网络文章,版权归原作者所有

最新文章

热门文章

本栏目文章