全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页

MySQL索引深度与性能调优

24 题 60 分钟 难度:

考察知识点

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

B+树索引结构(3题)

  • B+树的基本结构与特点
  • B+树与B树的对比差异
  • B+树叶子节点双向链表的作用

索引优化原则(2题)

  • 索引设计基本原则
  • 最左前缀原则的理解与应用

索引类型与适用场景(2题)

  • 普通索引、唯一索引、主键索引特点
  • 联合索引的设计策略

查询性能调优技巧(2题)

  • 查询优化的基本方法
  • EXPLAIN执行计划的使用

索引选择性与基数(2题)

  • 选择性计算与意义
  • 高选择性列优先建索引原则

聚簇索引与二级索引(3题)

  • 聚簇索引的索引组织表(IOT)结构
  • 二级索引的叶子节点存储
  • 聚簇索引与二级索引的差异对比

索引覆盖与回表查询(2题)

  • 回表查询的定义与成本
  • 索引覆盖优化策略

索引失效场景分析(2题)

  • 索引失效的常见原因
  • 函数操作、类型转换导致索引失效

慢查询日志与分析(2题)

  • 慢查询日志的作用与配置
  • 慢查询分析方法

执行计划解读(3题)

  • EXPLAIN关键字的使用
  • type/access_type字段含义
  • Extra字段解读(Using index等)
1
单选题

InnoDB存储引擎使用什么结构来组织索引?

A

B树

B

B+树

C

哈希表

D

跳表

2
多选题

B+树索引结构具有以下哪些特点?

A

所有数据存储在叶子节点

B

非叶子节点只存储键值和指针

C

叶子节点通过链表连接

D

树的高度通常较低

E

支持高效的范围查询

3
填空题

B+树与B树的主要区别:B+树数据只存储在________,B树数据存储在________;B+树叶子节点通过______连接便于范围查询。

4
单选题

创建索引时应该遵循什么基本原则?

A

为所有列都创建索引

B

只为经常查询的列创建索引

C

只为主键创建索引

D

不创建任何索引

5
多选题

以下哪些是索引优化的正确原则?

A

选择区分度高的列作为索引

B

组合索引遵循最左匹配原则

C

避免在频繁更新的列上建索引

D

索引列尽量使用短字段

E

使用覆盖索引减少回表

6
单选题

MySQL中主键索引属于什么类型的索引?

A

普通索引

B

唯一索引

C

聚簇索引

D

全文索引

7
多选题

MySQL支持以下哪些索引类型?

A

普通索引(Normal Index)

B

唯一索引(Unique Index)

C

主键索引(Primary Key)

D

全文索引(Fulltext Index)

E

空间索引(Spatial Index)

8
单选题

查询优化最基本的手段是什么?

A

增加服务器内存

B

使用索引覆盖查询

C

分析执行计划

D

使用更复杂的SQL

9
多选题

以下哪些是常用的查询性能调优技巧?

A

避免 SELECT *,只查询需要的列

B

使用 LIMIT 限制返回行数

C

避免在 WHERE 条件中使用函数

D

优化 JOIN 操作,小表驱动大表

E

使用覆盖索引避免回表

10
判断题

当ORDER BY的列上有索引时,MySQL可以利用索引的有序性避免排序操作。

A

B

11
单选题

什么是索引的选择性(Selectivity)?

A

索引被查询使用的频率

B

索引列中不同值的数量占总行数的比例

C

索引占用的存储空间大小

D

索引更新操作的次数

12
多选题

关于索引选择性的描述,哪些是正确的?

A

选择性越高索引效率越好

B

主键的选择性为1,是最理想的索引

C

低选择性列单独建索引效果差

D

组合索引可以提高整体选择性

E

选择性影响MySQL是否选择使用索引

13
单选题

InnoDB中聚簇索引的特点是什么?

A

索引和数据分开存储

B

索引和数据存储在一起,数据按索引键顺序存储

C

只存储索引键值

D

可以有多个聚簇索引

14
判断题

一张InnoDB表可以有多个聚簇索引。

A

B

15
多选题

聚簇索引有哪些优缺点?

A

主键查询效率高,直接获取数据行

B

范围查询效率高,数据物理连续存储

C

更新主键代价高,需要移动数据行位置

D

插入数据可能导致页分裂

E

二级索引查询需要回表

16
单选题

什么是回表查询?

A

返回表结构的查询

B

通过二级索引找到主键,再到聚簇索引查找完整数据的查询

C

查询表的所有列

D

使用索引的查询

17
多选题

使用覆盖索引有哪些优势?

A

避免回表查询,减少IO操作

B

索引通常比数据行小,缓存效率更高

C

对于组合索引,可以充分利用最左匹配原则

D

减少锁的范围

E

EXPLAIN的Extra显示Using index

18
单选题

以下哪种情况会导致索引失效?

A

查询使用索引列作为WHERE条件

B

WHERE条件中对索引列使用函数

C

使用索引列进行等值比较

D

使用覆盖索引查询

19
多选题

以下哪些场景会导致索引失效?

A

WHERE条件中使用函数作用于索引列

B

WHERE条件中使用OR连接非索引列

C

LIKE查询以通配符开头 LIKE '%abc'

D

组合索引不满足最左匹配原则

E

索引列参与计算 WHERE a+1=2

20
单选题

MySQL的慢查询日志主要用于什么目的?

A

记录所有SQL语句

B

记录执行时间超过阈值的SQL语句,用于性能优化分析

C

记录错误的SQL语句

D

记录事务日志

21
多选题

以下哪些是慢查询日志相关的参数?

A

slow_query_log:是否开启慢查询日志

B

long_query_time:慢查询时间阈值

C

log_queries_not_using_indexes:记录未使用索引的查询

D

slow_query_log_file:慢查询日志文件路径

E

min_examined_row_limit:最少检查行数阈值

22
单选题

使用什么命令查看MySQL的SQL执行计划?

A

SHOW PLAN

B

EXPLAIN

C

DESCRIBE

D

ANALYZE

23
多选题

EXPLAIN执行计划中type列的值按效率从高到低排列,以下排序正确的是?

A

system > const > eq_ref > ref > range > index > ALL

B

ALL > index > range > ref > eq_ref > const > system

C

const > system > eq_ref > ref > range > ALL > index

D

ref > eq_ref > const > system > range > index > ALL

24
多选题

EXPLAIN的Extra列可能出现哪些值?分别表示什么含义?

A

Using index:使用了覆盖索引

B

Using filesort:使用了额外的排序操作

C

Using temporary:使用了临时表

D

Using index condition:使用了索引下推

E

Using where:WHERE条件在服务器层过滤

← 上一个试卷 MySQL索引与优化专题测试
下一个试卷 → MySQL锁事务与并发控制

📝 发现内容有误?点击此处直接编辑

想参加完整模拟考试?
小程序提供计时考试、自动评分和详细解析

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库