简历表达:把两年经历讲成项目

把「入职创业公司,从 0 建库到扛住大促」写成简历亮点--每个数字都经得起追问。

学 20 min
练 70 min
盘 30 min
共 120 分钟

学 · 20 min

  1. 01简历写法:动词 + 做了什么 + 量化结果

  2. 02每一句都必须经得起「具体怎么做的」这一问

练 · 100 min

  1. 写第一条简历亮点:数据建模相关(用 D31 的 ER 图和 D30 的约束设计当素材)
    参考答案

    句式模板:「主导设计 __(X 张核心表)的数据模型,通过 __(约束设计 / 价格快照 / 类目层级),实现 __(量化结果:脏数据率从 X% 降到 Y% / 口径统一后报表争议清零)」。素材用 D30 的约束清单和 D31 的 ER 图--每个字段的类型和可空性都是你亲手定的,追问到任何一层都有话接。

  2. 写第二条:查询优化相关,必须带数字(从 X 秒到 Y 毫秒)
    参考答案

    句式模板:「将 __(高频报表查询)从 X 秒优化到 Y 毫秒:用 EXPLAIN ANALYZE 定位到 __(全表扫描 / 错误 join 算法),手段是 __(补索引 / 改写掉列上的函数 / 物化视图),并用前后执行计划对比验证」。数字必须是自己 explain analyze 里真实见过的,编的数字被追问一句「cost 从多少降到多少」就穿帮。

  3. 为每条准备 3 层追问的答案
    参考答案

    三层追问结构:① 怎么发现的(现象:老板喊慢 / 报表超时);② 具体怎么做的(工具 + 步骤,能到命令级);③ 为什么选这个方案、对比过什么替代方案(为什么不是加缓存 / 为什么不是另一个索引顺序)。每层备 30 秒版本,第三层是拉开差距的地方。

  4. 练 3 分钟项目自述,录像回看
    参考答案

    3 分钟自述结构:一句话背景(从 0 建库)-> 一个爆发点(涨到百万行后报表变慢)-> 三个动作(建模 / 优化 / 扛大促)-> 结果数字收尾。录像回看三查:卡壳处、没解释的术语(听的人懂吗)、是否超时(超 3 分半必删)。

  5. 删掉自述里所有讲不清的词
    参考答案

    自查法:对每个形容词追问「具体是多少?」答不上来就删。删掉「海量数据」「高性能」「复杂业务」,换成「100 万订单」「从 2.1 秒到 45 毫秒」「状态机约束」--名词和数字不需要解释,形容词才需要。

过关标准 两条简历亮点各能撑住三轮追问;3 分钟自述一气呵成。

今日复盘

  1. 60 分钟闭卷手写 8 题(多表 + 子查询 + 集合运算)
    参考答案

    多表题第一步永远是画连接链(哪几张表、按什么键、几对几);集合运算题先确认两边的输出列同型。反连接三写法的口径差异要能口述:NOT IN 怕 NULL,另两个不怕。

    -- 三大家族题型示例:
    -- ① 多表聚合报表(先画连接链,再写 FROM)
    -- ② 反连接 / 半连接(EXISTS、LEFT JOIN ... IS NULL、IN 三写法)
    -- ③ 集合运算(UNION / UNION ALL / EXCEPT / INTERSECT)
    
    -- ① 按一级类目统计 GMV(明细 -> 商品 -> 二级类目 -> 一级类目连三级)
    select top.name as 一级类目,
           sum(oi.qty * oi.unit_price) as gmv
    from order_items oi
    join products p on p.id = oi.product_id
    join categories c on c.id = p.category_id
    join categories top on top.id = coalesce(c.parent_id, c.id)
    group by 1
    order by gmv desc;
    
    -- ② 从未下过单的用户(两种等价写法;NOT IN 遇 user_id 为 NULL 会整题翻车)
    select u.id from users u
    where not exists (select 1 from orders o where o.user_id = u.id);
    
    select u.id from users u
    left join orders o on o.user_id = u.id
    where o.id is null;
    
    -- ③ 集合运算:近 30 天下过单、却从未登录过的用户
    select distinct user_id from orders
    where created_at >= current_date - 30
    except
    select user_id from user_logins
    where login_at >= current_date - 30;
  2. 设计点赞系统(注意热点行与计数)
    参考答案

    要点:复合主键 (user_id, target_type, target_id) 天然幂等,重复点赞插不进去,不用先查再插;点赞数单独做计数表或缓存,别每次实时 count;三个典型查询:某内容的点赞数、我点过没有(主键直接命中)、我点赞过的列表(按 user_id 开头的索引,需要和主键顺序权衡);扩展性风险:热点内容的计数行竞争 -> 计数分桶 / 走缓存(D48 的思路)。DDL 参考上方学栏示例。

  3. 用唯一索引 + 幂等键实现幂等写入
    易错点

    幂等键的颗粒度是<b>业务</b>定义的:用户+活动?用户+商品+秒?定义错颗粒度,要么吞单要么重复。