面试面经 · 腾讯CSIG
【腾讯CSIG】【后端开发】【二面】商品订单场景题+数据一致性深度拷问
【腾讯CSIG】【后端开发】【二面】
基本信息
| 项目 | 内容 |
|---|---|
| 公司 | 腾讯CSIG(云与智慧产业事业群) |
| 岗位 | 后端开发 |
| 轮次 | 技术二面 |
| 时间 | 2025年秋招 |
| 面试时长 | 约60分钟 |
| 面型体感 | 全程场景题,不是标准八股,需要工程思维 |
| 结果 | 通过 |
面试题目(按提问顺序)
- 自我介绍
- 有两张表:商品表和订单表,查询时要考虑什么?(追问:按商品查订单还是按订单反查?是否分页?数据量多大?返回字段多不多?)
- 商品类型字段适合做索引吗?为什么?
- 数据库层面如何保证数据原子性?
- 如果把订单表放 Redis 里,如何保证和 MySQL 的一致性?
- 数据表非常大时,查询时要做哪些优化考虑?
- 联合索引的最左前缀原则是什么?什么情况下会失效?
- 深分页问题怎么处理?(
LIMIT 1000000, 10很慢) - 微服务架构中,服务 A 调用服务 B 失败了,怎么保证数据一致性?
- 你了解分布式事务吗?TCC、SAGA 各自适用什么场景?
- 项目中遇到过最难的 Bug 是什么?怎么排查的?
- 手撕代码:实现一个简单的 LRU Cache(
get和put均为 O(1))
面试感受 / 反馈
- 二面风格完全不一样,几乎一整轮都是业务场景题
- 面试官不会接受标准八股回答,要你把知识放进真实业务里讲
- "商品类型字段适不适合建索引"这类题没有标准答案,考的是分析能力
- 手撕代码在场景题之后,算是一个缓冲
准备建议
- 数据库场景题要按"明确查询目标 → 分析关联字段 → 索引设计 → 性能优化 → 缓存策略"的顺序思考
- 区分度低的字段(如类型、状态)单独建索引效果不好,要结合组合查询模式分析
- Redis 与 MySQL 一致性方案要能讲清楚:延迟双删、Canal 订阅 binlog、设置合理过期时间
- 深分页方案:游标分页(
WHERE id > last_id LIMIT 10)、覆盖索引优化
反问示例
- 团队目前最大的技术挑战是什么?
- 新人进来后主要做哪块业务?