news 2026/4/15 15:43:53

面试时回答索引是为了提高查询效率,面试官问“没了??”(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/4/15 10:33:43

中文NER系统部署:RaNER模型与负载均衡

中文NER系统部署:RaNER模型与负载均衡 1. 引言:AI 智能实体侦测服务的工程价值 在信息爆炸的时代,非结构化文本数据(如新闻、社交媒体、客服对话)占据了企业数据总量的80%以上。如何从中高效提取关键信息&#xff0c…

作者头像 李华
网站建设 2026/4/15 10:31:20

用LightGBM早停稳住医疗分类

📝 博客主页:jaxzheng的CSDN主页 用LightGBM早停稳住医疗分类:在数据不平衡中实现稳健预测 目录 用LightGBM早停稳住医疗分类:在数据不平衡中实现稳健预测 引言:医疗AI的隐性危机与破局点 一、医疗数据的“三重困境”&…

作者头像 李华
网站建设 2026/4/15 7:51:27

Qwen2.5-7B移动办公:平板电脑+云端GPU,随时随地玩AI

Qwen2.5-7B移动办公:平板电脑云端GPU,随时随地玩AI 1. 引言:出差族的AI办公新方案 作为一名经常出差的咨询顾问,你是否遇到过这样的困境:客户资料堆积如山需要快速分析,但随身只带了轻便的iPad&#xff0…

作者头像 李华
网站建设 2026/4/15 7:52:58

Qwen2.5-7B企业级应用:小团队福音,按需付费不浪费

Qwen2.5-7B企业级应用:小团队福音,按需付费不浪费 1. 为什么小团队需要Qwen2.5-7B? 作为一家初创公司的技术负责人,你可能经常面临这样的困境:既想用AI提升效率,又担心投入过大。传统大模型动辄需要几十G…

作者头像 李华