MySQL 的 ACID 特性是什么?

推荐答案

MySQL 的 ACID 特性是指数据库事务的四个关键特性,分别是:

  1. 原子性(Atomicity):事务是一个不可分割的工作单位,事务中的所有操作要么全部成功,要么全部失败回滚。
  2. 一致性(Consistency):事务执行前后,数据库的状态必须保持一致。即事务的执行不会破坏数据库的完整性约束。
  3. 隔离性(Isolation):多个事务并发执行时,一个事务的操作不会被其他事务干扰,事务之间是相互隔离的。
  4. 持久性(Durability):一旦事务提交,其所做的修改将永久保存在数据库中,即使系统发生故障也不会丢失。

本题详细解读

1. 原子性(Atomicity)

原子性确保事务中的所有操作要么全部成功,要么全部失败。如果事务中的任何一部分操作失败,整个事务都会回滚到最初的状态。MySQL 通过事务日志(如 undo log 和 redo log)来实现原子性。

2. 一致性(Consistency)

一致性确保事务执行前后,数据库的状态保持一致。这意味着事务的执行不会破坏数据库的完整性约束,如主键、外键、唯一性约束等。MySQL 通过约束检查和事务日志来保证一致性。

3. 隔离性(Isolation)

隔离性确保多个事务并发执行时,每个事务的操作不会被其他事务干扰。MySQL 通过锁机制和多版本并发控制(MVCC)来实现隔离性。不同的隔离级别(如读未提交、读已提交、可重复读、串行化)提供了不同程度的隔离性。

4. 持久性(Durability)

持久性确保一旦事务提交,其所做的修改将永久保存在数据库中,即使系统发生故障也不会丢失。MySQL 通过 redo log 和 binlog 来保证持久性。即使数据库崩溃,也可以通过这些日志恢复数据。

纠错
反馈