全部学科
Python全栈
python
NodeJS全栈
nodejs

MySQL事务与锁专题测试

20 题 40 分钟 难度:★★

考察知识点

本试卷涵盖以下核心知识点:

事务隔离级别(7题)

  • 四种隔离级别的特点与区别
  • 脏读、不可重复读、幻读的概念
  • 隔离级别解决的问题对照
  • MySQL默认隔离级别

事务ACID特性(4题)

  • 原子性、一致性、隔离性、持久性的含义
  • ACID特性的实现机制
  • InnoDB对ACID的支持

锁的分类与机制(4题)

  • 锁粒度分类(表锁、行锁、页锁)
  • 共享锁与排他锁的区别
  • 意向锁的作用
  • Record Lock、Gap Lock、Next-Key Lock

MVCC多版本并发控制(4题)

  • MVCC的基本概念与作用
  • MVCC的实现基础(Undo Log)
  • MVCC隐藏字段(DB_TRX_ID、DB_ROLL_PTR)
  • Read View工作机制

死锁与优化(2题)

  • 死锁检测机制
  • 预防死锁的方法
💡 参考答案在文末
判断题
1

innodb_deadlock_detect参数默认开启,InnoDB会自动检测死锁并回滚其中一个事务。

A

B

2

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

A

B

3

Next-Key Lock是Record Lock和Gap Lock的组合,既锁定记录行也锁定前面的间隙,用于防止幻读。

A

B

4

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

A

B

单选题
5

InnoDB实现MVCC的基础是什么?

A

只使用锁

B

Undo Log保存数据的历史版本

C

内存缓存

D

网络传输

6

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

A

设置数据库密码

B

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

C

设置查询速度

D

设置存储空间

7

什么是脏读?

A

读取了正确的数据

B

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

C

读取了旧数据

D

读取了重复数据

8

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

所有级别隔离程度相同

9

预防死锁的常用方法是什么?

A

不使用事务

B

按固定顺序访问资源,避免形成循环等待

C

增加锁等待时间

D

使用更大的锁

10

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

A

创建多个数据库版本

B

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

C

备份数据库

D

复制数据库

11

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

A

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

B

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

C

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

D

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

12

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

A

只有一种锁

B

表级锁、行级锁、页级锁

C

读锁、写锁

D

自动锁、手动锁

13

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

A

大锁和小锁

B

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

C

快锁和慢锁

D

内存锁和磁盘锁

14

意向锁(Intention Lock)的主要作用是什么?

A

直接锁定数据行

B

提高表锁与行锁兼容性判断效率,表示表中有行被锁定

C

替代行级锁

D

用于死锁检测

15

什么是不可重复读?

A

数据可以重复读取

B

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

C

读取不到数据

D

数据被删除

多选题
16

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

A

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

B

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

C

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

D

SERIALIZABLE解决所有并发问题

E

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

17

关于MVCC工作机制的描述,哪些是正确的?

A

MVCC通过Undo Log保存数据的历史版本

B

每行数据有DB_TRX_ID和DB_ROLL_PTR隐藏字段

C

Read View记录活跃事务列表用于判断版本可见性

D

READ COMMITTED每次查询创建新Read View

E

REPEATABLE READ只在事务开始时创建一次Read View

18

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

A

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

B

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

C

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

D

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

E

InnoDB完整支持ACID四个特性

填空题
19

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

20

事务隔离级别从低到高:____________允许脏读,____________解决脏读,____________解决脏读和不可重复读(MySQL默认),SERIALIZABLE解决所有问题但性能最低。

参考答案
1.正确 2.正确 3.正确 4.正确 5.B 6.B 7.B 8.B 9.B 10.B 11.A 12.B 13.B 14.B 15.B 16.A;B;C;D;E 17.A;B;C;D;E 18.A;B;C;D;E 19.原子性;一致性;隔离性 20.READ UNCOMMITTED;READ COMMITTED;REPEATABLE READ
想在手机上练习这套试卷?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一套试卷 MySQL中级技能认证
下一套试卷 → MySQL初级技能认证
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码