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

覆盖索引为什么可以减少回表?

中级 单选题 第 641 题 中等 数据库系统工程师索引覆盖索引回表
题目

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

A 覆盖索引
B 脏读
C 两阶段提交
D 外连接
题目类型:原创高频考点题 用途:用于帮助理解数据库系统工程师相关考点和答案解析,不等同于官方真题。
书木兰刷题练习 适合懒人、小白的刷题通关平台
正确答案
A
答案解析

覆盖索引指查询所需的数据列已经包含在索引中,数据库可以直接从索引获取结果,减少或避免回表操作。题干中查询只需要 A、B,而联合索引 (A, B) 已覆盖所需字段,因此属于覆盖索引场景。

选项分析

A

正确。索引覆盖查询所需列,减少回表。

B

错误。脏读是事务隔离问题,与索引无关。

C

错误。两阶段提交用于分布式事务一致性。

D

错误。外连接是 SQL 连接方式,不是索引优化概念。

本题为什么容易错

这题容易把“用了索引”和“覆盖索引”混为一谈。用了索引不一定覆盖查询,只有查询所需字段都能从索引中得到,才叫覆盖索引。

先看结论

简短答案

覆盖索引为什么可以减少回表,正确答案是 A(覆盖索引)。覆盖索引指查询所需的数据列已经包含在索引中,数据库可以直接从索引获取结果,减少或避免回表操作。题干中查询只需要 A、B,而联合索引 (A, B) 已覆盖所需字段,因此属于覆盖索引场景。

解析

易混淆概念对比表

概念本题判断区别要点记忆提示
覆盖索引 本题正确答案 正确。索引覆盖查询所需列,减少回表。 看到题干核心场景时优先联想到它
脏读 本题干扰项 错误。脏读是事务隔离问题,与索引无关。 看到该词不要急着选,先判断是否真正解决题干问题
两阶段提交 本题干扰项 错误。两阶段提交用于分布式事务一致性。 看到该词不要急着选,先判断是否真正解决题干问题
外连接 本题干扰项 错误。外连接是 SQL 连接方式,不是索引优化概念。 看到该词不要急着选,先判断是否真正解决题干问题
本题易混淆选项怎么区分
  • 脏读:错误。脏读是事务隔离问题,与索引无关。
  • 两阶段提交:错误。两阶段提交用于分布式事务一致性。
  • 外连接:错误。外连接是 SQL 连接方式,不是索引优化概念。
复习

知识点详解

数据库索引题经常考索引是否有效、最左前缀、回表和覆盖索引。回表可以理解为先通过索引找到行,再回到数据页取完整记录;覆盖索引则让查询直接在索引里完成。它能提升性能,但也要考虑索引维护成本,不是索引列越多越好。

备考速记

记法:覆盖索引就是“索引里已经盖住了我要查的列”。要什么列,索引有什么列,两边对上就可能不用回表。

回表在回表场景中的作用

回表在本题中的核心价值,是解决“某查询只需要返回字段 A 和字段 B,而数据库中已有联合索引 (A, B)。在执行查询时,如果仅通过该索引就能取得所需字段,而不必再访问数据表记录,这种情况通常称为()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。

拓展

同类题怎么考

  • 给出回表场景,判断应该选择哪个概念、工具、协议或管理过程。
  • 考查回表的作用,要求从四个相近选项中找出最符合题干目标的一项。
  • 把回表和脏读、两阶段提交、外连接放在一起考,重点看适用场景是否一致。
  • 题干通常会出现一个关键动作或目标,先定位关键词,再回到选项逐一排除。
回表在数据库系统工程师软考中的考法

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

解题思路

这题先看查询要什么字段,再看索引里有什么字段。需要 A、B,索引也包含 A、B,就可以直接从索引拿结果。索引不只是用来定位行,有时也能直接提供查询结果。

考点定位

覆盖索引看“查询所需列是否都在索引里”。如果都在,就可能减少回表。

易错提醒

  • 认为只要使用了索引就一定是覆盖索引。
  • 忽略 SELECT 返回列,只看 WHERE 条件列。
  • 为了覆盖所有查询随意加宽索引,忽略写入和维护成本。

备考提示

  • 数据库索引复习时,把最左前缀、覆盖索引、回表、索引失效放在一起看。
  • 做题时先圈 SELECT 列和 WHERE 条件,再看索引列顺序。
  • 相关专题:/guides/database-system-index-leftmost-covering-invalid/

你可能还想了解

  • 覆盖索引为什么可以减少回表?
  • 回表是什么?
  • 回表在数据库系统工程师考试中怎么考?
  • 数据库系统工程师回表题怎么理解?
  • 覆盖索引和回表区别怎么考?
  • 数据库系统工程师索引题怎么考?

本文小结

本题核心考点是回表在回表场景中的判断和应用。遇到类似题目时,先看题干描述的目标,再判断哪个选项最符合场景;本题应选择 A(覆盖索引)。