跳到主要内容

事务与并发控制知识体系概览

问题

什么是数据库事务?为什么需要并发控制?事务与并发控制涉及哪些核心知识?

答案

什么是事务

事务(Transaction)是数据库操作的 最小逻辑工作单元,由一系列操作组成,这些操作要么全部执行成功,要么全部回滚。

-- 转账场景
BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;
-- 如果任一步骤失败,ROLLBACK 撤销所有变更

为什么需要并发控制

在多个事务同时执行时,如果不加以控制,会出现以下问题:

知识体系总览

各数据库事务对比

特性MySQL (InnoDB)PostgreSQLMongoDBRedis
ACID 支持✅(4.0+ 多文档)❌(仅 MULTI 原子性)
默认隔离级别可重复读(RR)读已提交(RC)快照隔离-
MVCC✅(更完善)-
行锁✅(文档级)-
间隙锁-
分布式事务XA✅(分片事务)-
嵌套事务SavepointSavepoint

面试重点

知识点重要度高频问题
ACID 四大特性⭐⭐⭐⭐⭐ACID 是什么?各自如何保证?
隔离级别⭐⭐⭐⭐⭐四种隔离级别?默认哪个?
MVCC⭐⭐⭐⭐⭐MVCC 如何实现?Read View?
幻读⭐⭐⭐⭐⭐RR 如何解决幻读?
锁类型⭐⭐⭐⭐行锁、间隙锁、Next-Key Lock?
死锁⭐⭐⭐⭐死锁怎么产生?怎么解决?
分布式事务⭐⭐⭐⭐2PC、TCC、Saga?

本分类文档导航

文档内容
ACID 特性原子性、一致性、隔离性、持久性的实现原理
隔离级别四种隔离级别、并发问题、各数据库默认级别
MVCC 原理版本链、Read View、快照读/当前读
死锁死锁条件、检测、预防、排查
分布式事务2PC、TCC、Saga、最终一致性

相关链接