news 2026/4/3 4:56:36

面试时回答索引是为了提高查询效率,面试官问“没了??”(MySQL索引的面试题目)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
面试时回答索引是为了提高查询效率,面试官问“没了??”(MySQL索引的面试题目)

MySQL中索引部分是面试官最常问道的,索引说破天就是充当书的目录的作用,提高查询效率,但是面试的时候这样回答不够优雅,如何让面试官眼前一亮

关于MySQL索引的面试题目,我总结了如下思维导图,需要完整MySQL的面试思维导图可以私信我领取,也可以持续关注我的MySQL专栏,我会继续分享MySQL相关面试题,助力大家在面试时被问到MySQL轻松拿下

一、明确的前提

索引不是万能的,索引并不适用于所有场景,也不能说索引越多越好。索引固然可以提高查询速度,但是索引同样也有缺点,比如:

  • 索引需要占用磁盘空间,数量越多,占用的磁盘空间越大
  • 创建和维护索引要耗费时间,时间随着数据量的增加而增大
  • 插入、更新和删除操作性能下降:当创建一个索引时,数据库在执行增删改操作时,不仅要对表中数据进行维护,还需要对相关索引进行维护

索引的设计也有一些原则:

  1. 选择区分度高的列作为索引(不要选择性别这样区分度极低的列作为索引)
  2. order by、group by、distinct后面的字段建索引,能避免临时表和文件排序
  3. 索引并不是越多越好,非必要不创建索引
  4. 频繁查询的字段要建索引
  5. 创建索引尽量选择普通索引而不是唯一索引
  6. 联合索引,遵循最左前缀
  7. 避免类型长度大的字段做索引,text、longtext这种字段,索引占用空间大,加载到内存耗时,还可能把其他热点数据挤出Buffer Pool

二、索引的分类

一张图就搞定:

聚簇索引和非聚簇索引的区别?

1.聚簇索引叶子节点包含了实际的数据行,非聚簇索引的叶子节点任然是索引,存在一个指针指向对应的数据块,当通过聚簇索引查找数据时,可以直接从索引中获得数据,无需回表;

2.聚簇索引键值的逻辑顺序决定了相应行的物理存储顺序,非聚簇索引的逻辑顺序与磁盘上行的物理存储顺序不同;

3.每张表只能有一个聚簇索引,而可以有多个非聚簇索引

4.聚簇索引在范围查询和排序查询更有效率

B+树VSB 树VS二叉树VSHash

B+树 VS B 树:B+树只在叶子节点存储数据,而B树非叶子节点也要存储数据,所以在相同的IO磁盘次数下,就能查询更多的节点;B+树叶子节点采用的是双链表链接,更适合范围查询;

B+树 VS 二叉树:即使数据达到千万级别,B+树的高度维持在3-4层左右,相比于二叉树来讲树高更低,IO磁盘操作更少

B+树 VS Hash:Hash在做等值查询的时候效率较高,但是Hash不适合做范围查询

三、索引失效场景

  1. 模糊查询(like)的不当使用
  2. 在索引列中使用函数
  3. 联合索引不满足最左前缀原则
  4. 在索引列中进行表达式计算
  5. 在where子句中如果or前的条件列是索引列,而or后面的条件列不是索引列,也会导致索引失效
  6. 隐式类型转换,比如遇到字符串和数字比较时,会自动把字符串转为数字,然后进行比较,通过CAST函数完成隐式类型转换,等同于索引列使用了函数

四、索引使用技巧

索引下推(主要用在联合索引中)

把部分查询条件从server层下推到存储引擎层,在引擎层就把不符合条件的数据过滤掉,不需要回表查完整数据;

索引覆盖

SQL中查询的所有字段,在索引B+树的叶子节点上都能找到那些索引,从二级索引中查询得到记录,而不需要通过聚簇索引查询获得,可以避免回表操作

前缀索引

使用前缀索引是为了减小索引字段大小,可以增加一个索引页中存储的索引值,有效提高索引的查询速度。在一些大字符串的字段作为索引,使用前缀索引可以帮助我们减小索引页的大小;

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/29 7:10:09

基于AI智能实体侦测服务的招投标信息抽取完整流程

基于AI智能实体侦测服务的招投标信息抽取完整流程 1. 引言:从非结构化文本中释放关键信息价值 在招投标场景中,每天都会产生海量的公告、公示和文件,这些文档大多以非结构化文本形式存在,包含大量关键实体信息——如招标单位&am…

作者头像 李华
网站建设 2026/4/3 4:48:56

AI智能实体侦测服务如何批量处理?自动化脚本对接实战

AI智能实体侦测服务如何批量处理?自动化脚本对接实战 1. 引言:AI 智能实体侦测服务的业务价值 在信息爆炸的时代,非结构化文本数据(如新闻、社交媒体、客服记录)占据了企业数据总量的80%以上。如何从中快速提取关键信…

作者头像 李华
网站建设 2026/4/2 5:50:11

Qwen2.5 API速成指南:不懂编程也能调用

Qwen2.5 API速成指南:不懂编程也能调用 引言 作为电商店主,你是否遇到过这样的烦恼:海外客户用不同语言咨询商品信息,你不得不花费大量时间翻译回复?或者深夜收到客户消息却无法及时响应?Qwen2.5这个强大…

作者头像 李华
网站建设 2026/3/26 6:22:26

AI智能实体侦测服务批量导入导出:CSV/JSON格式处理实战

AI智能实体侦测服务批量导入导出:CSV/JSON格式处理实战 1. 背景与需求分析 1.1 智能实体侦测服务的应用场景 随着非结构化文本数据的爆炸式增长,从新闻、社交媒体、企业文档中自动提取关键信息已成为自然语言处理(NLP)的核心任…

作者头像 李华
网站建设 2026/3/30 0:35:04

AI智能实体侦测服务部署成功率提升:网络代理配置技巧分享

AI智能实体侦测服务部署成功率提升:网络代理配置技巧分享 1. 引言 1.1 业务场景描述 在当前信息爆炸的时代,非结构化文本数据(如新闻、社交媒体内容、文档资料)呈指数级增长。如何从这些海量文本中快速提取出有价值的关键信息&…

作者头像 李华
网站建设 2026/4/1 20:11:16

智能会议纪要生成:集成RaNER实体识别功能实战

智能会议纪要生成:集成RaNER实体识别功能实战 1. 引言:智能会议中的信息抽取挑战 在现代企业协作中,会议是信息交换的核心场景。然而,传统会议纪要依赖人工整理,耗时长、易遗漏关键信息。随着AI技术的发展&#xff0…

作者头像 李华