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

B+ 树索引为什么适合范围查询?

中级 单选题 第 603 题 中等 数据库系统工程师B+ 树索引范围查询哈希索引
题目

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

A B+ 树叶子结点按键值有序,并且通常可以顺序访问相邻叶子结点
B B+ 树会把所有数据随机打乱,范围越大越容易查
C B+ 树只能用于图片压缩,不能用于数据库
D B+ 树索引不需要维护任何键值顺序
题目类型:原创高频考点题 用途:用于帮助理解数据库系统工程师相关考点和答案解析,不等同于官方真题。
书木兰刷题练习 适合懒人、小白的刷题通关平台
正确答案
A
答案解析

B+ 树索引把键值按顺序组织,非叶子结点主要用于导航,叶子结点保存有序键值和指向数据的引用,并且叶子结点之间通常可以顺序链接。因此做范围查询时,可以先定位范围起点,再沿着叶子结点顺序扫描到范围终点。哈希索引适合等值查找,但天然不擅长按顺序扫描一段范围。

选项分析

A

正确。有序叶子结点和顺序访问能力,是 B+ 树适合范围查询的重要原因。

B

错误。随机打乱会破坏范围查询效率。

C

错误。B+ 树是数据库索引中非常常见的数据结构。

D

错误。B+ 树索引正是依靠键值顺序组织来支持查找和范围扫描。

本题为什么容易错

这题容易把“索引都能加速查询”理解得太宽。不同索引结构擅长的查询不一样:等值查找和范围查询不是一回事。范围查询要看顺序,B+ 树的优势就在这里。

先看结论

简短答案

B+ 树索引为什么适合范围查询,正确答案是 A(B+ 树叶子结点按键值有序,并且通常可以顺序访问相邻叶子结点)。B+ 树索引把键值按顺序组织,非叶子结点主要用于导航,叶子结点保存有序键值和指向数据的引用,并且叶子结点之间通常可以顺序链接。因此做范围查询时,可以先定位范围起点,再沿着叶子结点顺序扫描到范围终点。哈希索引适合等值查找,但天然不擅长按顺序扫描一段范围。

解析

易混淆概念对比表

概念本题判断区别要点记忆提示
B+ 树叶子结点按键值有序,并且通常可以顺序访问相邻叶子结点 本题正确答案 正确。有序叶子结点和顺序访问能力,是 B+ 树适合范围查询的重要原因。 看到题干核心场景时优先联想到它
B+ 树会把所有数据随机打乱,范围越大越容易查 本题干扰项 错误。随机打乱会破坏范围查询效率。 看到该词不要急着选,先判断是否真正解决题干问题
B+ 树只能用于图片压缩,不能用于数据库 本题干扰项 错误。B+ 树是数据库索引中非常常见的数据结构。 看到该词不要急着选,先判断是否真正解决题干问题
B+ 树索引不需要维护任何键值顺序 本题干扰项 错误。B+ 树索引正是依靠键值顺序组织来支持查找和范围扫描。 看到该词不要急着选,先判断是否真正解决题干问题
本题易混淆选项怎么区分
  • B+ 树会把所有数据随机打乱,范围越大越容易查:错误。随机打乱会破坏范围查询效率。
  • B+ 树只能用于图片压缩,不能用于数据库:错误。B+ 树是数据库索引中非常常见的数据结构。
  • B+ 树索引不需要维护任何键值顺序:错误。B+ 树索引正是依靠键值顺序组织来支持查找和范围扫描。
复习

知识点详解

B+ 树索引是数据库系统工程师考试中需要结合场景理解的考点。围绕“B+ 树索引为什么适合范围查询”这类题目,复习时要先看题干描述的是概念定义、适用场景、作用效果,还是与其他选项的区别。本题的题干关键词是“数据库为订单表的下单时间字段建立索引后,经常需要查询“某一天到某一天之间”的订单记录。相比只适合快速等值定位的哈希索引,B+ 树索引更适合这类范围查询,主要原因是()”,它指向的核心答案是 A(B+ 树叶子结点按键值有序,并且通常可以顺序访问相邻叶子结点)。

备考速记

备考速记:题干如果强调“哈希索引”中的关键目标,就先联想到 B+ 树索引;如果选项里出现 B+ 树会把所有数据随机打乱,范围越大越容易查、B+ 树只能用于图片压缩,不能用于数据库、B+ 树索引不需要维护任何键值顺序,不要只看名称熟悉,要判断它们是否真正对应题干场景。

B+ 树索引 在哈希索引场景中的作用

B+ 树索引在本题中的核心价值,是解决“数据库为订单表的下单时间字段建立索引后,经常需要查询“某一天到某一天之间”的订单记录。相比只适合快速等值定位的哈希索引,B+ 树索引更适合这类范围查询,主要原因是()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。

拓展

同类题怎么考

  • 给出哈希索引场景,判断应该选择哪个概念、工具、协议或管理过程。
  • 考查B+ 树索引的作用,要求从四个相近选项中找出最符合题干目标的一项。
  • 把B+ 树索引和B+ 树会把所有数据随机打乱,范围越大越容易查、B+ 树只能用于图片压缩,不能用于数据库、B+ 树索引不需要维护任何键值顺序放在一起考,重点看适用场景是否一致。
  • 题干通常会出现一个关键动作或目标,先定位关键词,再回到选项逐一排除。
B+ 树索引 在数据库系统工程师软考中的考法

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

解题思路

老师讲索引时常用一句话:哈希像查字典里的一个精确编号,B+ 树像按页码排好的目录。你要查某一天到某一天之间的订单,当然希望目录是有顺序的,找到起点后一路往后翻。

考点定位

B+ 树题要抓有序、树高低、叶子结点顺序访问、范围扫描。哈希索引题要抓等值查找快、范围查询弱。

易错提醒

  • 认为哈希索引也天然适合范围查询。
  • 只记 B+ 树名字,不理解叶子结点顺序访问的意义。
  • 范围条件写法不当,导致索引优势无法发挥。

备考提示

  • 数据库系统工程师复习索引时,把 B+ 树、哈希索引、联合索引、覆盖索引分场景比较。
  • 看到 between、大于小于、按时间区间查询,优先想到有序索引结构。
  • B+ 树适合范围查询,不代表任何 SQL 都一定走索引,还要看选择性、统计信息和执行计划。

你可能还想了解

  • B+ 树索引为什么适合范围查询?
  • B+ 树索引是什么?
  • B+ 树索引在数据库系统工程师考试中怎么考?
  • 数据库系统工程师B+ 树索引题怎么理解?
  • B+树索引为什么适合范围查询怎么考?
  • B+树和哈希索引区别怎么考?

本文小结

本题核心考点是B+ 树索引在哈希索引场景中的判断和应用。遇到类似题目时,先看题干描述的目标,再判断哪个选项最符合场景;本题应选择 A(B+ 树叶子结点按键值有序,并且通常可以顺序访问相邻叶子结点)。