尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Java面试MySQL索引,这5个问题必问
问题一为什么MySQL用B树不用B树或哈希哈希索引等值查询快但范围查询废了因为哈希值无序。B树每个节点都存数据树高比B树高磁盘IO次数多。B树只在叶子节点存数据非叶子节点只存索引同样磁盘页能塞更多索引项树更矮查任何数据都只要两到三次IO。叶子节点还用链表串起来范围查询直接顺着链表扫。面试官想听的不是“B树好”是“为什么好”。答出磁盘IO和范围查询基本过关。问题二聚簇索引和非聚簇索引有什么区别聚簇索引的叶子节点存整行数据非聚簇索引叶子节点存主键值。InnoDB的主键索引就是聚簇索引一张表只有一个。你给name字段建索引查name得到主键再拿主键回聚簇索引捞整行这叫回表。回表是性能杀手能避免就避免。怎么避免用覆盖索引把要查的字段都放进联合索引里查完索引直接返回不回表。面试时能讲清回表代价和覆盖索引加分。问题三联合索引的最左前缀原则是什么联合索引(a,b,c)查询条件必须从a开始跳过a直接用b索引失效。但有个例外a用范围查询b和c就断了。最左前缀的本质是B树按a、b、c顺序排序你跳过a树没法定位。面试常问where b1 and c2能用索引吗不能。where a1 and c2呢a能用c用不上。where a1 and b2 and c3呢a和b能用c断了。答清楚这个面试官会点头。问题四哪些情况会导致索引失效八个典型场景对索引列做函数运算、隐式类型转换、like以%开头、or连接非索引列、not in和!、is null和is not null、联合索引不满足最左前缀、数据区分度太低。面试官最爱问“为什么like %abc失效”因为B树从左到右排序你从中间匹配树没法用。还有“为什么隐式转换失效”字符串列传数字MySQL把列转成数字等于对列做了函数运算。这些场景背下来面试稳一半。问题五索引下推是什么MySQL 5.6之后有什么优化索引下推是MySQL 5.6引入的优化。没有它联合索引(a,b)查a1 and b like %x存储引擎先按a1捞出所有记录回表再在Server层过滤b。有了索引下推存储引擎直接在索引层过滤b减少回表次数。面试官问这个是在看你有没有跟进MySQL新特性。类似的还有MRR、覆盖索引、自适应哈希。能说出索引下推的原理和收益说明你不只是背八股是真读过文档。这5个问题答得漂亮面试官会认定你懂数据库。答得含糊他会担心你上线后写出一条拖垮生产的SQL。索引知识不是面试专用是你每天写代码的护身符。把B树画一遍把回表跑一遍把最左前缀在脑子里推一遍比背一百道题管用。
RELATED

相关推荐

精益制造数字化转型三年规划:从83页PPT到可执行项目清单的落地方法

精益制造数字化转型三年规划:从83页PPT到可执行项目清单的落地方法

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/2 17:50:46
RM65机械臂ROS仿真稳态环境搭建:Noetic+Ubuntu20.04实战指南

RM65机械臂ROS仿真稳态环境搭建:Noetic+Ubuntu20.04实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/10/2 17:45:46
Python解析式

Python解析式

在日常的情况里面, 是经常可以看见形如ret等于的这种表现的。这是一个列表推导式, 用于计算列表中每个元素的平方。这类赋值语句, 对于从C转行过来的人来说, 不是太容易懂得这种for循环的用法是怎么一回事, 这也就是为了追求简练而被创造出来的一种新式语法。解析式存在如下的一…

📅 2026/10/2 17:45:46
MORE NEWS

更多资讯

📰

精通线程池:核心参数、执行流程与生产调优实战

“精通线程池”这几个字,写的时候挺爽,面试的时候是真慌。我面过不少候选人,简历上写着精通并发编程,问到底层逻辑,十个里有八个卡在“线程池是先扩容还是先入队”这种问题上。线程池这东西,背会八个参数不…

📰

Esri 2020全球土地覆盖数据下载全攻略:分幅规则、工具原理与避坑指南

1. 从 Esri 2020 全球土地覆盖数据说起:它到底是什么先交代一个背景:Esri 在 2020 年发布了一版10米分辨率全球土地覆盖数据,这几乎是目前公开可下载的、全球尺度下分辨率最高的一套地表分类产品。所谓“土地覆盖”(Land Cover&am…

📰

拆解ABS“玄学”:Simulink单轮模型从零搭建与门限控制仿真

1. 先给ABS的“玄学”祛个魅:它到底在控制什么很多人第一次接触ABS模型,都会觉得这玩意儿透着点说不清道不明的气质。明明是一套缸内压力切换的逻辑,怎么放到不同路面上结果就完全不一样,调参跟猜谜似的。这个感觉其实不奇怪&…

📰

Claude Code配置入门与排错:从Node.js到settings.json完整指南

Claude 配置这个话题,最近被问的次数实在有点多。有人装完claude命令敲下去报错说找不到,有人登录到一半卡在授权页面,还有人把settings.json改了几十行结果原来看起来正常的对话反而全废了。说实话,Claude Code 的配置难度不算高…

📰

PLC子程序编程详解:从梯形图杂乱到模块化结构

写PLC程序这几年,我最大的体会是:很多设备逻辑不复杂,但梯形图一多就乱,改一个动作要找半天触点,调试的时候谁都救不了你。后来我把程序里那些反复出现的逻辑全拆成了子程序,整个工程量直接从“一团毛线”变…

📰

计算机毕业设计|基于springboot + vue校园拼单团购系统(源码+数据库+文档)

校园拼单团购系统 目录 基于springboot vue校园拼单团购系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue校园拼单团购系统 一、前言 博主介绍&…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬