SQL面试题更新 2026-08-03

请解释 SQL 中事务的概念,并详细说明事务的 ACID 特性分别指什么?

考察说明

考查对数据库事务核心概念及其 ACID 特性的理解程度。

回答思路

  1. 【回答框架 1】事务是数据库管理系统执行过程中的一个逻辑单位,由一个或多个 SQL 语句组成,这些语句要么全部成功执行,要么全部失败回滚,保证数据一致性。
  2. 【回答框架 2】ACID 是事务的四个基本特性:原子性(Atomicity)保证事务内的操作要么全部完成,要么全部不执行;一致性(Consistency)确保事务执行前后数据库都处于合法状态;隔离性(Isolation)使多个事务并发执行时互不干扰;持久性(Durability)保证事务一旦提交,其结果永久保存。
  3. 【回答框架 3】原子性通过事务日志或回滚段实现,若事务中途失败,则撤销已执行的操作。一致性通常由应用层或数据库约束(如外键、唯一约束)配合事务机制共同保证。隔离性通过锁或 MVCC 实现,不同隔离级别(如读未提交、读已提交、可重复读、串行化)提供不同程度的隔离。持久性依赖 WAL(预写日志)或类似机制,确保提交后的数据在系统故障后仍可恢复。
  4. 【回答框架 4】以银行转账为例,从 A 账户扣款和向 B 账户加款必须作为同一事务执行,若其中一个操作失败,则整个事务回滚,保证两个账户总额不变,体现原子性和一致性;并发转账时,通过隔离性避免脏读或幻读;事务提交后即使断电,余额变动也持久保存,体现持久性。
  5. 【关键点 1】事务是逻辑工作单元,具有原子性、一致性、隔离性、持久性四大特性。
  6. 【关键点 2】原子性通过日志或回滚实现,隔离性通过锁或 MVCC 实现,持久性依赖 WAL。
  7. 【关键点 3】ACID 特性共同保障数据库在异常和并发场景下的正确性。
  8. 【易错点 1】不要将一致性简单理解为数据不变,而是指满足约束和业务规则。
  9. 【易错点 2】隔离性并不要求所有场景都使用最高级别,需根据业务权衡并发性能和正确性。
  10. 【易错点 3】持久性不直接等同于立即刷盘,可能依赖数据库缓冲和日志机制,但最终保证提交后不丢失。