全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📝 1 篇文章 20 道配套习题

MySQL事务与锁

专题说明

本专题深入剖析MySQL事务与锁机制,帮助开发者理解ACID特性、隔离级别、锁分类、MVCC原理和死锁处理,掌握并发控制核心技术,保障数据一致性。

学习目标

  1. 理解事务ACID四大特性的含义与实现
  2. 掌握四种隔离级别及各自解决的问题
  3. 理解锁的分类与不同锁粒度的特点
  4. 掌握MVCC多版本并发控制的工作原理
  5. 学会死锁检测与预防策略

学习内容

本专题涵盖以下核心知识点:

  • 事务ACID特性:原子性、一致性、隔离性、持久性的含义与实现机制
  • 事务隔离级别:读未提交、读已提交、可重复读、串行化及各自解决的问题
  • 锁的分类:表锁/行锁/页锁、共享锁/排他锁、意向锁等分类体系
  • MVCC多版本并发控制:版本链、Read View、快照读与当前读
  • 死锁与优化:死锁成因、检测机制、预防策略、锁优化方法

学习建议

  1. 先理解ACID特性,这是事务的核心概念
  2. 重点掌握隔离级别与并发问题的对应关系
  3. 理解MVCC如何实现非锁定读提高并发
  4. 掌握死锁预防策略,避免生产环境问题
  5. 结合实践场景理解锁的优化方法

📝 发现内容有误?点击此处直接编辑

📝 配套习题(21 题)

1
单选题

事务的ACID特性指的是什么?

A

原子性、一致性、隔离性、持久性

B

自动性、并发性、独立性、安全性

C

准确性、完整性、独立性、可靠性

D

访问性、缓存性、索引性、数据性

2
单选题

事务的原子性(Atomicity)是指什么?

A

事务执行速度很快

B

事务中的操作要么全部成功执行,要么全部不执行(回滚)

C

事务只能一个人执行

D

事务数据很小

3
单选题

事务的一致性(Consistency)是指什么?

A

数据格式一致

B

事务执行前后,数据库从一个一致状态变换到另一个一致状态

C

所有事务执行速度一致

D

数据类型一致

4
单选题

事务的隔离性(Isolation)是指什么?

A

事务在隔离环境中执行

B

多个事务并发执行时,一个事务的执行不应影响其他事务的执行

C

事务之间完全隔离

D

事务只能串行执行

5
单选题

事务的持久性(Durability)是指什么?

A

事务执行时间长

B

事务提交后,对数据库的修改是永久性的,即使系统故障也不会丢失

C

数据存储在磁盘上

D

事务需要持久等待

6
判断题

InnoDB通过Undo Log实现原子性,通过Redo Log实现持久性,通过锁机制和MVCC实现隔离性。

A

B

7
多选题

关于事务ACID特性的描述,哪些是正确的?

A

原子性保证事务要么全部成功要么全部失败

B

一致性保证事务前后数据库状态符合约束规则

C

隔离性保证并发事务相互不干扰

D

持久性保证提交后的数据即使故障也不会丢失

E

InnoDB完整支持ACID四个特性

8
填空题

事务ACID特性:______保证事务不可分割,______保证数据状态合规,______防止并发干扰,______确保提交数据不丢失。

9
单选题

事务隔离级别的作用是什么?

A

设置数据库密码

B

控制多个事务并发执行时相互隔离的程度,解决数据一致性问题

C

设置查询速度

D

设置存储空间

10
单选题

什么是脏读?

A

读取了正确的数据

B

读取了其他事务未提交的数据

C

读取了旧数据

D

读取了重复数据

11
单选题

什么是不可重复读?

A

数据可以重复读取

B

同一事务内两次读取同一数据结果不同(被其他事务修改并提交)

C

读取不到数据

D

数据被删除

12
判断题

MySQL InnoDB的默认事务隔离级别是REPEATABLE READ(可重复读)。

A

B

13
单选题

MySQL支持的四种事务隔离级别,按隔离程度从低到高排列是?

A

SERIALIZABLE > REPEATABLE READ > READ COMMITTED > READ UNCOMMITTED

B

READ UNCOMMITTED < READ COMMITTED < REPEATABLE READ < SERIALIZABLE

C

READ COMMITTED > REPEATABLE READ > SERIALIZABLE > READ UNCOMMITTED

D

所有级别隔离程度相同

14
多选题

关于事务隔离级别解决的并发问题,哪些是正确的?

A

READ UNCOMMITTED允许脏读、不可重复读、幻读

B

READ COMMITTED解决脏读,允许不可重复读、幻读

C

REPEATABLE READ解决脏读和不可重复读

D

SERIALIZABLE解决所有并发问题

E

隔离级别越高并发性能越低

15
单选题

MySQL的锁按照粒度可以分为哪几种?

A

只有一种锁

B

表级锁、行级锁、页级锁

C

读锁、写锁

D

自动锁、手动锁

16
单选题

按照类型分类,MySQL的锁主要有哪些?

A

大锁和小锁

B

共享锁(S锁)和排他锁(X锁)

C

快锁和慢锁

D

内存锁和磁盘锁

17
判断题

InnoDB支持行级锁,适合高并发OLTP场景;MyISAM只支持表级锁,适合读密集型场景。

A

B

18
单选题

MVCC(多版本并发控制)的主要作用是什么?

A

创建多个数据库版本

B

通过保存数据的多个版本实现非锁定读,提高并发性能

C

备份数据库

D

复制数据库

19
单选题

InnoDB实现MVCC的基础是什么?

A

只使用锁

B

Undo Log保存数据的历史版本

C

内存缓存

D

网络传输

20
单选题

什么是死锁?

A

数据库锁太多

B

两个或多个事务相互等待对方释放锁,形成循环等待无法继续执行

C

锁等待超时

D

锁失效

21
单选题

InnoDB如何处理死锁?

A

等待直到超时

B

自动检测死锁并回滚其中一个事务打破循环

C

不处理死锁

D

让用户手动处理

下一个专题 → MySQL基本操作

📝 发现内容有误?点击此处直接编辑

想查看更多习题和详细解析?
小程序提供完整的题库和详细解析

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库