您的当前位置:首页>全部文章>文章详情

面试官要的不是标准答案,是你能不能把取舍讲清楚

发表于:2026-10-07 11:48:06浏览:6次TAG: #教程 #PHP #MySql

题库能过初筛,过不了追问

同一道题:「这个接口变慢了,你怎么办?」背出来的版本是加索引、加缓存、上队列、看慢查询。这些词都对,也可以原样换成下一个候选人。能拍板的面试官听的不是词。他听你遇事怎么选,以及你明确放弃了什么。

两分钟里要有一次真的取舍

下面这段是按真实约束写的,不是按题库写的。后台文章列表一页 20 条,打开要一秒多。关联了分类和作者,筛选条件还经常变。编辑保存后,人会马上刷新,所以这个页面不适合整页缓存,缓存会让他以为没保存成功。

可以这样讲,控制在两分钟:

我先看慢日志,不是先加缓存。时间主要花在排序字段没有索引,不是花在 PHP 组装结果。索引加上之后,从大约 1.2 秒降到几十毫秒。缓存我没有上。原因是这个列表要马上看见刚改的状态,读者保存完会立刻刷新。索引会让写入稍重一点,但这张表读远多于写,所以划算。队列也不适合,因为人在等这一页打开,不是在等一个后台任务。

这段话里有三个放弃:放弃了整页缓存,放弃了「先上 Redis」的习惯动作,放弃了队列。面试官要听的就是这三个放弃。只有「我加了索引」的版本,听完无法判断你会不会在下一张表上乱加缓存。

他下一句通常不在题库里

常见追问是:索引加上之后,怎么确认没有把写入拖慢?

能接上的回答仍然很短。看三样东西:这张表的写入耗时有没有变长,行数以后若从几千涨到几十万还是否成立,高峰慢日志里还有没有它。如果写入已经变慢,就改回看是不是索引太多,而不是再加一个缓存把读的问题盖住。

接不上的回答,是开始背缓存的三种过期策略。那说明题库用完了。面试官不必跟你争论 Redis,他已经知道这段经历不是你的。

标准答案讲得清的答案
听完的感觉这些词我也会说这个人处理过这一页
追问转到下一道题能说出怎么确认没有添新问题
和项目的关系套到任何公司都像对的换一个要强一致的页面,选择会变

只准备 3 个你真做过的问题

  1. 每个写成四行:当时的现象,你排除了什么,最后为什么选这个,你放弃了什么。
  2. 每个讲两分钟。超时,说明你还在回忆过程,没有收成判断。
  3. 找人只追问一句「为什么不选另一个」。答不上来的那个,就还不能拿去面试。

模型可以帮你把四行整理顺,也可以扮面试官追问。它不能替你发明一个没做过的放弃。你要是让它编一个「我们当时在百万并发下做了取舍」,追问两句就会露。把真事讲短,比把假事讲完整有用。

标准答案证明你听过课。取舍证明你扛过事。