推荐答案
MySQL 的 ACID 特性是指数据库事务的四个关键特性,分别是:
- 原子性(Atomicity):事务是一个不可分割的工作单位,事务中的所有操作要么全部成功,要么全部失败回滚。
- 一致性(Consistency):事务执行前后,数据库的状态必须保持一致。即事务的执行不会破坏数据库的完整性约束。
- 隔离性(Isolation):多个事务并发执行时,一个事务的操作不会被其他事务干扰,事务之间是相互隔离的。
- 持久性(Durability):一旦事务提交,其所做的修改将永久保存在数据库中,即使系统发生故障也不会丢失。
本题详细解读
1. 原子性(Atomicity)
原子性确保事务中的所有操作要么全部成功,要么全部失败。如果事务中的任何一部分操作失败,整个事务都会回滚到最初的状态。MySQL 通过事务日志(如 undo log 和 redo log)来实现原子性。
2. 一致性(Consistency)
一致性确保事务执行前后,数据库的状态保持一致。这意味着事务的执行不会破坏数据库的完整性约束,如主键、外键、唯一性约束等。MySQL 通过约束检查和事务日志来保证一致性。
3. 隔离性(Isolation)
隔离性确保多个事务并发执行时,每个事务的操作不会被其他事务干扰。MySQL 通过锁机制和多版本并发控制(MVCC)来实现隔离性。不同的隔离级别(如读未提交、读已提交、可重复读、串行化)提供了不同程度的隔离性。
4. 持久性(Durability)
持久性确保一旦事务提交,其所做的修改将永久保存在数据库中,即使系统发生故障也不会丢失。MySQL 通过 redo log 和 binlog 来保证持久性。即使数据库崩溃,也可以通过这些日志恢复数据。