校招 未知部门 / 后端开发 / 一面

[面试日期] 2026-10-11 [面试时长] 未知
[学校背景] 湖南师范大学 | 211 [学历背景] 未知
[发布人] 面试之星官方收录
<h2>拼多多服务端开发一面</h2> <p>二战pdd,再次含恨<img src="https://uploadfiles.nowcoder.com/images/20220815/318889480_1660553763930/8B36D115CE5468E380708713273FEF43"></p><p>时间:2026.10.11 11:00</p><p>时长:一个小时</p><p></p><p>整体主要围绕简历中的SQL优化、MySQL、Redis、消息队列、Spring事务展开,最后有两道手撕算法题。</p><h2>一、实习项目与SQL优化</h2><ol><li>简单做一下自我介绍。</li><li>看到你简历中有一段MySQL查询优化的经历,具体是怎么优化的?</li><li>你提到将多条SQL聚合成一条,具体是统计什么业务指标?</li><li>这些指标是每天都需要计算,还是只需要计算一次?</li><li>SQL聚合查询有没有使用窗口函数?</li><li>除了项目中提到的优化方案,还有没有做过其他SQL优化,例如慢查询优化、索引优化等?</li></ol><h2>二、MySQL</h2><ol><li>如果线上出现一条慢SQL,你会怎么排查和优化?</li><li>使用EXPLAIN分析SQL时,重点关注哪些字段?</li><li>假设现在有一条SQL,包含<code>user_id</code>、<code>state</code>两个等值查询条件,以及<code>create_time</code>范围查询和排序,你会怎么设计索引?为什么?</li><li>哪些情况下会导致MySQL索引失效?</li><li>如果接触一个全新的业务,需要从零开始设计数据库表,你会怎么设计?</li><li>数据库设计时,为什么有时候需要增加冗余字段?</li><li>假设用户表和地址表存在关联关系,是否可以直接在用户表中冗余存储地址信息?</li><li>增加冗余字段是否会破坏数据库范式?数据库范式和实际业务需求发生冲突时,你会怎么权衡?</li></ol><h2>三、Redis</h2><ol><li>Redis常见的数据结构有哪些?</li><li>String、Hash、List、Set、ZSet分别适合什么使用场景?</li><li>如果使用Redis作为缓存,如何解决缓存和数据库的数据一致性问题?</li><li>先更新数据库再删除缓存,是否还会出现数据不一致?有哪些场景?</li><li>除了延迟双删,还有没有其他缓存一致性解决方案?</li><li>如果通过监听MySQL Binlog,再经过消息队列处理缓存更新,这种方案有什么好处?</li></ol><h2>四、消息队列</h2><ol><li>了解消息队列的设计原理吗?</li><li>使用消息队列时,如何保证消息不会丢失?</li><li>如果消费者处理一条消息到一半时突然宕机了,应该怎么处理?</li><li>如何保证消息不会漏消费,同时避免重复消费造成业务问题?</li><li>消息消费的幂等性通常怎么实现?</li></ol><h2>五、Spring</h2><ol><li>Spring中的<code>@Transactional</code>在哪些情况下会失效?</li></ol><h2>六、手撕算法</h2><p><strong>第一题:二分插入排序</strong></p><p><strong>第二题:任务调度 / 最少线程数(力扣253)</strong></p><p>给定一组任务,每个任务都有开始时间和结束时间。</p><p>要求计算:<strong>至少需要多少个线程,才能保证所有任务都能够在各自的时间区间内执行,且同一个线程不能同时执行两个时间重叠的任务?</strong></p><p></p><a>#27届秋招#</a><a>#拼多多#</a>
AI 推荐面试题