后端开发面试深挖 15 题

每题都拆成「平淡回答 → 追问逻辑 → 高分示范」三层,看清后端高频题到底在考什么。

了解 AI 模拟面试
15 道真题·3 大分类·每题配面试官追问逻辑

题目为高频真实问法;①②③ 三层答案为模拟示范,非真实面经

15 题点击题目展开三层拆解

① 简历常见平淡回答

「建立联合索引 a,b,c,查询条件必须从 a 开始按顺序写,跳过 a 索引就失效了,用 EXPLAIN 能看出来。」

为什么不够:只背了规则表象,没说清复合索引在 B+ 树物理排序上的级联本质(首列相同才排次列),也没解释跳列或范围查询时 EXPLAIN key_len 到底如何体现有效长度,缺乏工程排查与重构思路。

② 面试官追问逻辑

where a = 1 and c = 2 到底用了索引的哪部分?EXPLAIN key_len 怎么算?范围查询(比如 a = 1 and b > 10 and c = 2)为什么会导致后面的 c 无法走索引检索?如果业务上频繁需要跳过 a 查 b 和 c,除了新建索引,还有哪些权衡方案?

③ 深挖后可量化的高分示范

复合索引在 B+ 树上是严格按字段顺序级联排序的,只有前一列值相等时才会比较下一列;跳过首列直接查次列就像查字典跳过首字母,无法二分。排查失效看 EXPLAIN 的 key_len:三列联合索引 `(a,b,c)` 查 `a=1 and c=2` 时,key_len 只体现 a 的字节数,说明 c 只作为过滤条件并未走索引定位。工程中若该跳列查询高频,优先评估新建联合索引 `(a,c)` 或调整列顺序;若写操作频繁需防范索引膨胀,则依赖 MySQL 5.6+ 的索引下推(ICP)机制过滤,尽量减少回表开销。

看完真题拆解,来一场全真模拟面试

免注册体验一轮 AI 模拟面试,体验真实深度追问,聊出你的真实高光与项目细节。

免费注册账号

无需信用卡 · 注册即送 600 积分