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

MySQL索引与优化专题测试

21 题 45 分钟 难度:

考察知识点

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

索引基础(6题)

  • 索引的基本概念与作用
  • 创建索引的语法与方法
  • 查看索引的方法
  • 主键自动创建索引机制
  • 索引的代价与收益

索引类型(6题)

  • 普通索引、唯一索引、主键索引的特点
  • 组合索引的概念与最左匹配原则
  • 全文索引的用途
  • 各索引类型的适用场景

索引优化策略(5题)

  • 覆盖索引的概念与优势
  • 组合索引顺序优化原则
  • 索引失效场景分析
  • 索引维护建议

查询优化(2题)

  • 子查询改写为JOIN的优化
  • 常用查询优化技巧汇总

执行计划分析(2题)

  • EXPLAIN type列的含义
  • 执行计划Extra列解读
1
单选题

数据库索引的主要作用是什么?

A

增加存储空间

B

提高查询速度,快速定位数据

C

减少数据量

D

自动清理数据

2
单选题

MySQL创建索引的基本语法是什么?

A

ADD INDEX idx_name ON table(column)

B

CREATE INDEX idx_name ON table(column)

C

NEW INDEX idx_name ON table(column)

D

INSERT INDEX idx_name ON table(column)

3
判断题

索引可以提高查询速度,但会增加写操作(INSERT、UPDATE、DELETE)的开销和占用额外存储空间。

A

B

4
单选题

如何查看表的索引信息?

A

SHOW INDEXES FROM table_name 或 SHOW INDEX FROM table_name

B

GET INDEX table_name

C

LIST INDEX table_name

D

DISPLAY INDEX table_name

5
单选题

MySQL的主键(PRIMARY KEY)会自动创建索引吗?

A

不会自动创建索引

B

会自动创建索引,且是聚簇索引

C

需要手动创建索引

D

只创建普通索引

6
填空题

索引主要作用是____________,创建语法____________,查看索引用__________,主键自动创建________

7
单选题

普通索引(Normal Index)的特点是什么?

A

值必须唯一

B

值可以重复,是最基本的索引类型,无特殊限制

C

只用于主键

D

不允许NULL值

8
单选题

唯一索引(Unique Index)的特点是什么?

A

值可以重复

B

值必须唯一,不允许重复值(但允许多个NULL)

C

只用于外键

D

自动生成值

9
判断题

主键索引是特殊的唯一索引,不允许NULL值,而唯一索引允许NULL值。

A

B

10
单选题

组合索引(复合索引)是什么?

A

只包含一个列的索引

B

包含多个列的索引,多个列组合在一起建立索引

C

多个单列索引的组合

D

主键和外键的组合

11
单选题

组合索引(name, age, city),以下哪个查询无法使用该索引?

A

WHERE name = '张三'

B

WHERE name = '张三' AND age = 20

C

WHERE name = '张三' AND age = 20 AND city = '北京'

D

WHERE age = 20 AND city = '北京'

12
判断题

组合索引比多个单列索引更高效,可以减少索引数量,且遵循最左匹配原则。

A

B

13
多选题

MySQL支持哪些索引类型?

A

普通索引(INDEX):最基本的索引,值可重复

B

唯一索引(UNIQUE):值必须唯一,允许NULL

C

主键索引(PRIMARY KEY):值唯一且非空,聚簇索引

D

组合索引:多列组合建立索引

E

全文索引(FULLTEXT):用于文本全文搜索

14
填空题

索引类型:________值可重复,________值必须唯一,________值唯一且非空,________多列组合遵循________原则。

15
单选题

什么是覆盖索引?它的优势是什么?

A

索引覆盖整张表

B

查询所需的所有列都在索引中,无需回表查询数据行

C

索引覆盖所有列

D

索引覆盖所有表

16
单选题

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

A

WHERE name = '张三'

B

WHERE YEAR(create_time) = 2024(在索引列上使用函数)

C

WHERE name LIKE '张%'

D

WHERE id = 100

17
判断题

定期使用ANALYZE TABLE更新表统计信息,可以帮助优化器做出更好的索引选择决策。

A

B

18
填空题

索引优化:________的列建索引效果好,组合索引________________________避免回表,避免______________导致索引失效。

19
单选题

为什么建议将子查询改写为JOIN?

A

子查询语法错误

B

子查询可能产生临时表效率较低,JOIN可以利用索引更高效

C

JOIN语法更简单

D

子查询不支持索引

20
多选题

以下哪些是常用的查询优化技巧?

A

使用EXPLAIN分析执行计划

B

避免SELECT *只查询需要的列

C

使用LIMIT限制返回行数

D

小表驱动大表优化JOIN

E

利用索引优化ORDER BY避免filesort

21
单选题

EXPLAIN执行计划中type列显示ALL表示什么?

A

使用了索引查询效率最高

B

全表扫描效率最低应优化添加索引

C

使用了范围查询

D

使用了JOIN连接

← 上一个试卷 MySQL查询语句专题测试
下一个试卷 → MySQL索引深度与性能调优

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

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

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

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