数据库系统工程师 · 高频练习

数据库锁粒度为什么会影响并发性能?

中级 单选题 第 679 题 中等 数据库系统工程师锁粒度行锁表锁并发控制
题目

某数据库系统在并发更新订单数据时,如果直接对整张订单表加锁,管理简单但会阻塞更多事务;如果只锁定被修改的少量订单记录,并发能力通常更好,但锁管理开销也会增加。这里讨论的主要是数据库锁的()。

A 锁粒度
B 数据库视图定义
C 字段命名规范
D 路由最长前缀匹配
题目类型:原创高频练习题 用途:用于帮助理解数据库系统工程师相关考点和答案解析,不等同于官方真题。
正确答案
A
答案解析

锁粒度指加锁对象的大小或范围,例如表级锁、页级锁、行级锁等。锁粒度越粗,锁管理相对简单,但可能阻塞更多并发操作;锁粒度越细,并发性通常更好,但锁数量和管理成本会增加。题干明确比较“整张表加锁”和“少量记录加锁”,考点就是锁粒度。

选项分析

A

正确。题干比较表级锁和行级锁,本质是在讨论锁粒度及其对并发和开销的影响。

B

错误。视图是查询定义或虚表概念,不能解释不同加锁范围的取舍。

C

错误。字段命名规范属于设计可读性问题,与并发控制无关。

D

错误。最长前缀匹配是网络路由选择原则,不是数据库锁机制。

本题为什么容易错

很多同学一看到锁就只想到“防止并发冲突”,但考试经常继续追问锁的范围。表锁不是一定错,行锁也不是永远最好,关键看并发需求、事务冲突范围和系统开销。软考选择题一般不要求你设计完整锁管理器,但要能说明粗细粒度的基本取舍。

先看结论

简短答案

数据库锁粒度为什么会影响并发性能,正确答案是 A(锁粒度)。锁粒度指加锁对象的大小或范围,例如表级锁、页级锁、行级锁等。锁粒度越粗,锁管理相对简单,但可能阻塞更多并发操作;锁粒度越细,并发性通常更好,但锁数量和管理成本会增加。题干明确比较“整张表加锁”和“少量记录加锁”,考点就是锁粒度。

解析

易混淆概念对比表

概念本题判断区别要点记忆提示
锁粒度 本题正确答案 正确。题干比较表级锁和行级锁,本质是在讨论锁粒度及其对并发和开销的影响。 看到题干核心场景时优先联想到它
数据库视图定义 本题干扰项 错误。视图是查询定义或虚表概念,不能解释不同加锁范围的取舍。 看到该词不要急着选,先判断是否真正解决题干问题
字段命名规范 本题干扰项 错误。字段命名规范属于设计可读性问题,与并发控制无关。 看到该词不要急着选,先判断是否真正解决题干问题
路由最长前缀匹配 本题干扰项 错误。最长前缀匹配是网络路由选择原则,不是数据库锁机制。 看到该词不要急着选,先判断是否真正解决题干问题
本题易混淆选项怎么区分
  • 数据库视图定义:错误。视图是查询定义或虚表概念,不能解释不同加锁范围的取舍。
  • 字段命名规范:错误。字段命名规范属于设计可读性问题,与并发控制无关。
  • 路由最长前缀匹配:错误。最长前缀匹配是网络路由选择原则,不是数据库锁机制。
复习

知识点详解

表级锁适合批量维护、结构变更或冲突范围较大的操作,优点是实现简单、锁管理开销低;行级锁适合高并发事务中只修改少量记录的场景,优点是减少无关事务等待。真实数据库还会结合索引、隔离级别、MVCC 和锁升级策略综合处理。考试通常抓最基础的对比:粗粒度少锁但阻塞多,细粒度并发高但开销大。

备考速记

速记:锁粒度就是锁多大。锁得越大越省管理,挡的人也越多;锁得越细并发好,管理更费劲。

并发控制在并发控制场景中的作用

并发控制在本题中的核心价值,是解决“某数据库系统在并发更新订单数据时,如果直接对整张订单表加锁,管理简单但会阻塞更多事务;如果只锁定被修改的少量订单记录,并发能力通常更好,但锁管理开销也会增加。这里讨论的主要是数据库锁的()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。

拓展

同类题怎么考

  • 给出并发控制场景,判断应该选择哪个概念、工具、协议或管理过程。
  • 考查并发控制的作用,要求从四个相近选项中找出最符合题干目标的一项。
  • 把并发控制和数据库视图定义、字段命名规范、路由最长前缀匹配放在一起考,重点看适用场景是否一致。
  • 题干通常会出现一个关键动作或目标,先定位关键词,再回到选项逐一排除。
并发控制在数据库系统工程师软考中的考法

软考选择题通常不会只考概念定义,还会把并发控制放到并发控制场景中,要求判断它的作用、适用范围或与相近概念的区别。遇到这类题时,先抓住题干中的业务场景,再看哪个选项最能解决该场景下的核心问题。

解题思路

这题不要被订单业务带偏。老师讲并发控制时会把锁想成教室门禁:锁整栋楼,管理很省事,但别人都进不来;只锁一个房间,影响小,但要管理更多钥匙。数据库里表锁和行锁就是类似的取舍。

考点定位

锁粒度题要看加锁范围:表、页、行。粗粒度管理简单但并发差,细粒度并发好但管理开销大。

易错提醒

  • 认为行锁一定比表锁好,忽略锁数量增多后的管理开销。
  • 高并发更新少量记录时仍使用过粗的锁,导致无关事务被阻塞。
  • 只看锁是否能保证一致性,不看锁对吞吐量和等待时间的影响。

备考提示

  • 数据库并发控制建议把锁粒度、封锁协议、两段锁、死锁、事务隔离级别放在一起复习。
  • 看到整表、页面、记录这些范围词,优先想到锁粒度。
  • 答题时不要绝对化,锁粒度本质是并发性和管理成本之间的平衡。

你可能还想了解

  • 数据库锁粒度为什么会影响并发性能?
  • 并发控制是什么?
  • 并发控制在数据库系统工程师考试中怎么考?
  • 数据库系统工程师并发控制题怎么理解?
  • 数据库锁粒度怎么理解怎么考?
  • 行锁和表锁区别怎么考?

本文小结

本题核心考点是并发控制在并发控制场景中的判断和应用。遇到类似题目时,先看题干描述的目标,再判断哪个选项最符合场景;本题应选择 A(锁粒度)。