数据库系统工程师 · 高频考点

数据库系统工程师高频考点练习题

围绕数据库系统工程师备考中常见的概念辨析、公式计算、流程判断和易错知识点整理,适合先刷高频题,再回到历年题查漏补缺。

43 道高频练习 中级 信息系统 数据库主键关系模型数据库

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

练习题 URL 已与历年题分开,便于搜索引擎理解页面类型
前缀索引长度为什么不能随便截太短?

某用户表的 email 字段很长,数据库管理员希望只对 email 前若干个字符建立前缀索引,以减少索引空间。但如果前缀长度过短,大量不同邮箱的前缀相同,过滤效果会明显变差。关于前缀索引的理解,较合理的是()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师前缀索引索引选择性
单选题
第 707 题
临键锁为什么说是记录锁和间隙锁的组合?

某事务执行范围查询时,数据库既要锁住已经存在的索引记录,又要防止其他事务在相邻范围间隙中插入新记录,从而降低幻读风险。若一个锁同时覆盖记录本身和记录前后的范围间隙,较接近()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师临键锁间隙锁
单选题
第 702 题
间隙锁为什么可以减少幻读问题?

事务 T1 查询某个分数范围内的学生记录,并希望在事务提交前这个范围内不要被其他事务插入新的记录。数据库除了锁住已有记录,还可能锁住索引记录之间的范围间隙,以阻止其他事务在该范围内插入新行。这种锁更接近()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师间隙锁幻读
单选题
第 698 题
索引下推为什么可以减少回表次数?

某查询使用联合索引定位到一批候选记录后,数据库可以在扫描索引时先利用索引中已有的条件继续过滤一部分记录,再决定是否回表读取完整数据行。这个优化思路更接近()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师索引下推回表
单选题
第 693 题
数据库死锁和锁等待怎么区分?

事务 T1 已锁住订单表中的记录 A,正在等待记录 B;事务 T2 已锁住记录 B,又在等待记录 A。两个事务都不主动释放自己已经持有的锁,系统需要检测并回滚其中一个事务才能继续。这个场景更接近()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师死锁锁等待
单选题
第 688 题
当前读和快照读在并发控制中怎么区分?

某数据库在普通 SELECT 查询时,可以读取事务开始时可见的数据版本;但执行 SELECT ... FOR UPDATE 或 UPDATE 时,需要读取并锁定最新记录,以便后续修改。关于这两类读取方式,下列说法较准确的是()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师MVCC当前读
单选题
第 684 题
数据库锁粒度为什么会影响并发性能?

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

中级 数据库系统工程师 高频练习 中等 数据库系统工程师锁粒度行锁
单选题
第 679 题
索引选择性为什么会影响查询效率?

某用户表有 100 万行数据,其中 gender 字段只有“男、女、未知”几个取值,而 user_id 字段几乎每行都不同。数据库管理员在评估哪些列更适合建立普通查询索引时,通常会更关注列的选择性。关于索引选择性,下列说法较合理的是()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师索引选择性基数
单选题
第 646 题
覆盖索引为什么可以减少回表?

某查询只需要返回字段 A 和字段 B,而数据库中已有联合索引 (A, B)。在执行查询时,如果仅通过该索引就能取得所需字段,而不必再访问数据表记录,这种情况通常称为()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师索引覆盖索引
单选题
第 641 题
物化视图为什么能提升复杂查询速度?

某报表系统每天都要统计大量订单明细,涉及多表连接和聚合计算。为了减少每次查询都重新计算的成本,数据库预先保存了聚合后的查询结果,并按计划刷新。该设计更接近()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师物化视图普通视图
单选题
第 633 题
两阶段提交为什么用于分布式事务一致性?

某业务操作需要同时更新订单库和库存库。为了避免一个库提交成功、另一个库回滚导致数据不一致,系统引入协调者,先询问各参与者是否可以提交,确认都准备好后再统一通知提交。该机制更接近()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师分布式事务两阶段提交
单选题
第 632 题
Undo 日志和 Redo 日志在事务恢复中怎么区分?

数据库事务执行过程中,系统既要能在事务回滚时撤销已经做过的修改,也要能在系统崩溃恢复时把已提交事务的修改重新做出来。关于 Undo 日志和 Redo 日志,下列说法较合理的是()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师Undo 日志Redo 日志
单选题
第 613 题
B+ 树索引为什么适合范围查询?

数据库为订单表的下单时间字段建立索引后,经常需要查询“某一天到某一天之间”的订单记录。相比只适合快速等值定位的哈希索引,B+ 树索引更适合这类范围查询,主要原因是()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师B+ 树索引范围查询
单选题
第 603 题
LIKE '%关键词' 为什么可能导致索引难以使用?

某表在 `name` 字段上建立了普通 B+ 树索引。查询 `WHERE name LIKE 'abc%'` 时,可以从索引有序前缀定位范围;但查询 `WHERE name LIKE '%abc'` 或 `LIKE '%abc%'` 时,优化器可能无法有效利用该索引。主要原因是()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师LIKE 查询前置通配符
单选题
第 480 题
两段锁协议为什么能保证冲突可串行化?

数据库并发控制中,某事务在第一阶段只能申请和获得锁,不能释放锁;一旦开始释放某个锁,就进入第二阶段,此后不能再申请新的锁。该协议通常用于保证并发调度满足哪一类性质?

中级 数据库系统工程师 高频练习 中等 数据库系统工程师两段锁协议并发控制
单选题
第 473 题
哈希索引为什么不适合范围查询?

某数据库表经常按订单编号做等值查询,也会偶尔查询某个时间范围内的订单。如果索引结构只根据键值计算哈希位置,能很快定位等值匹配,但不能按键值顺序连续扫描。关于这种索引的理解,哪一项更准确?

中级 数据库系统工程师 高频练习 中等 数据库系统工程师哈希索引B+树索引
单选题
第 468 题
数据库分区表为什么有利于大表管理?

某订单表按年累计到数亿行,查询经常按月份筛选历史订单,归档也多按月份进行。数据库管理员把订单表按时间范围拆成多个逻辑分区,查询时可只扫描相关分区。该设计主要利用了()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师分区表大表管理
单选题
第 334 题
数据库慢查询日志主要用来分析什么问题?

某业务系统在高峰期页面响应变慢。数据库管理员开启慢查询日志,记录执行时间超过阈值的 SQL 语句、扫描行数和执行时间,便于后续定位优化。慢查询日志主要用于()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师慢查询日志SQL优化
单选题
第 324 题
MVCC 为什么能减少读写之间的阻塞?

某数据库在事务并发执行时,为读操作提供某个时刻的数据版本,使普通查询不必总是等待正在修改数据的事务释放锁。该机制主要体现了()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师MVCC快照读
单选题
第 299 题
数据库检查点为什么能缩短崩溃恢复时间?

数据库系统定期把内存中的脏页写回磁盘,并在日志中记录检查点信息。系统崩溃后,恢复过程可以从较近的检查点附近开始分析,而不必从很早的日志位置重新扫描。检查点的主要作用是()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师检查点事务日志
单选题
第 270 题
数据库视图为什么能简化查询并控制数据访问?

某系统希望普通客服只能看到客户编号、姓名和服务等级,而不能直接看到身份证号、余额等敏感字段。数据库管理员基于原表创建一个只包含部分列的虚表,并授权客服查询该对象。该对象通常是()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师视图权限控制
单选题
第 232 题
数据库用全量备份和增量备份恢复时顺序是什么?

某数据库周日做一次全量备份,周一到周三每天做增量备份。周三晚发生故障,需要尽量恢复到周三备份后的状态。一般应先恢复(),再按时间顺序恢复后续增量备份。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师数据库备份增量备份
单选题
第 231 题
为什么统一加锁顺序可以降低数据库死锁风险?

事务 T1 先锁订单表再锁库存表,事务 T2 先锁库存表再锁订单表。在并发执行时,两个事务可能互相等待对方释放资源。为降低这种死锁风险,较合理的设计是()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师死锁事务并发控制
单选题
第 230 题
为什么要看 SQL 执行计划来判断索引是否生效?

某查询语句执行很慢,表上虽然建立了索引,但 DBA 不想只凭感觉判断优化器是否真的使用了该索引,而是希望查看访问路径、扫描方式和连接顺序。较合适的做法是()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师SQL 优化执行计划
单选题
第 230 题
联合索引为什么要注意最左前缀原则?

某表建立联合索引 `(department_id, status, create_time)`。如果查询条件跳过 department_id,只按 status 过滤,优化器可能无法充分利用该联合索引的前导列。这个现象主要与()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师联合索引最左前缀原则
单选题
第 203 题
读写分离为什么可能出现刚写完却查不到?

某系统采用主库写入、从库读取的读写分离架构。用户刚提交订单后立即查询订单详情,偶尔发现页面暂时查不到刚写入的数据。造成这种现象的常见原因是()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师读写分离主从复制
单选题
第 202 题
外键约束为什么能维护参照完整性?

订单表中保存客户编号,客户编号应当来自客户表中已经存在的客户记录。为了避免订单引用一个不存在的客户,数据库设计中通常应设置()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师外键约束参照完整性
单选题
第 201 题
LEFT JOIN 中右表条件放在 WHERE 里为什么可能改变结果?

查询用户表和订单表时,开发人员使用 LEFT JOIN,希望保留没有订单的用户。但他又在 WHERE 子句中写了 orders.status = 'paid',结果没有订单的用户被过滤掉了。较准确的解释是()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师LEFT JOINWHERE 条件
单选题
第 172 题
覆盖索引为什么可以减少回表查询?

某查询只需要返回 user_id、user_name 两列,并按 status 条件过滤。数据库中存在联合索引(status, user_id, user_name),优化器可以直接从该索引中取得过滤条件和返回列。这个索引之所以可能提高查询效率,主要是因为()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师覆盖索引回表查询
单选题
第 160 题
为什么在索引列上使用函数可能导致索引失效?

某表在 create_time 字段上建立了索引,但查询条件写成 DATE(create_time) = '2026-06-02',优化器可能无法直接利用该字段上的普通索引。主要原因是()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师索引SQL优化
单选题
第 120 题
数据库事务的原子性主要保证什么?

银行转账时,需要从 A 账户扣款并给 B 账户加款。如果扣款成功后系统故障,而加款没有完成,数据库应回滚已完成操作。这个要求主要体现了事务的()。

中级 数据库系统工程师 高频练习 基础 数据库系统工程师事务ACID
单选题
第 113 题
ER 图中的多对多联系转换成关系模式时怎么处理?

在学生选课系统中,一个学生可以选择多门课程,一门课程也可以被多个学生选择。把这个 ER 模型转换为关系数据库表时,通常应该()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师ER 模型多对多联系
单选题
第 112 题
数据库表中的主键为什么不能重复也不能为空?

在学生表中,学号被设计为主键。数据库要求每个学生的学号唯一,并且不能为空。这样设计的主要目的是()。

中级 数据库系统工程师 高频练习 基础 数据库系统工程师主键实体完整性
单选题
第 113 题
两个关系做笛卡尔积后元组数怎么算?

关系 R 有 12 个元组,关系 S 有 8 个元组。若对 R 和 S 做笛卡尔积 R×S,结果关系的元组数为()。

中级 数据库系统工程师 高频练习 基础 数据库系统工程师关系代数笛卡尔积
单选题
第 321 题
函数依赖中属性闭包怎么求?

关系模式 R(A,B,C,D),函数依赖集 F={A→B,B→C,C→D}。属性集 A 的闭包 A+ 为()。

中级 数据库系统工程师 高频练习 中等 数据库系统工程师属性闭包函数依赖
单选题
第 301 题
SQL 中 HAVING 和 WHERE 的区别是什么?

在 SQL 查询中,如果要对分组后的统计结果进行筛选,例如筛选订单数大于 10 的客户,应使用哪个子句?

中级 数据库系统工程师 高频练习 中等 数据库系统工程师GROUP BY 与 HAVINGHAVING和WHERE区别
单选题
第 7 题
数据库事务 ACID 中的持久性是什么意思?

数据库事务一旦提交,其对数据库的修改即使在系统故障后也应能够保存下来。该特性称为()。

中级 数据库系统工程师 高频练习 基础 数据库系统工程师事务 ACID数据库事务ACID
单选题
第 8 题
数据库第三范式主要消除什么依赖?

在关系数据库规范化中,若一个关系模式已经满足第二范式,并且非主属性不传递依赖于候选码,则该关系模式通常满足哪一种范式?

中级 数据库系统工程师 高频练习 中等 数据库系统工程师第三范式数据库第三范式
单选题
第 3 题
数据库为什么常用 B+ 树索引?

数据库系统中,为了提高范围查询和等值查询效率,常使用一种多路平衡查找树结构作为索引。关系数据库中常见的索引结构是?

中级 数据库系统工程师 高频练习 中等 数据库系统工程师B+ 树索引数据库B+树索引
单选题
第 4 题
事务隔离级别用于解决哪些并发问题?

数据库并发控制中,为减少脏读、不可重复读和幻读等问题,需要设置事务的哪一类属性或机制?

中级 数据库系统工程师 高频练习 中等 数据库系统工程师事务隔离级别数据库事务隔离级别
单选题
第 5 题
SQL 中 WHERE 和 HAVING 有什么区别?

在 SQL 查询中,如果需要对分组聚合后的结果进行筛选,例如筛选 COUNT(*) 大于 10 的分组,通常应使用哪个子句?

中级 数据库系统工程师 高频练习 基础 数据库系统工程师WHERE 与 HAVING数据库系统工程师SQL
单选题
第 6 题
数据库主键有什么作用?

关系数据库中,用于唯一标识表中每一行记录的属性或属性组通常称为什么?

中级 数据库系统工程师 高频练习 基础 数据库主键关系模型
单选题
第 1 题
数据库事务 ACID 是什么意思?

数据库事务具有原子性、一致性、隔离性和持久性,这四个特性通常简称为什么?

中级 数据库系统工程师 高频练习 中等 数据库事务ACID
单选题
第 2 题