面灵AI

招银网络科技后端开发一面面经

轮次
一面
时间
2026-09
来源
牛客网

《面试题目》

  1. 你如何理解分库分表?
  2. 聚簇索引和非聚簇索引有什么区别?
  3. 聚簇索引和唯一索引有什么区别?
  4. SQL 执行很慢时如何排查和优化?
  5. 如何保证索引有效?哪些场景会导致索引失效?
  6. 联合索引为什么可能导致查询变慢?
  7. Spring 和 Spring Boot 有什么区别?
  8. AOP 是什么?动态代理如何实现?
  9. @Autowired@Resource 有什么区别?
  10. 什么是依赖注入?
  11. 消息队列不可用时如何降级?
  12. 如何保证消息消费的一致性?
  13. 如何保证消息不丢失?
  14. 如何用动态规划求最大间隔和?

《参考解析》

  1. SQL 排查:先确认慢查询样本与参数,再用 EXPLAIN ANALYZE 对比估算行数和实际行数,检查扫描量、回表、排序、临时表与锁等待。优化可能落在索引、SQL 写法、统计信息或数据模型,不能只靠新增单列索引。
  2. 聚簇与非聚簇索引:InnoDB 聚簇索引的叶子节点存整行数据,一张表只能有一个;二级索引叶子节点保存主键值,查询非覆盖列时需要回表。唯一索引描述的是值的唯一性约束,与数据是否聚簇是两个维度。
  3. 消息可靠性:生产端使用确认与持久化,Broker 做副本与刷盘,消费端在业务成功后确认,并通过业务唯一键或消费记录实现幂等。消费失败进入有上限的重试或死信流程,同时保留可观测的失败状态。
  4. Spring 与 Spring Boot:Spring 提供依赖注入、AOP 等基础容器能力;Spring Boot 通过自动配置、起步依赖和内嵌服务器减少应用装配成本。Boot 建立在 Spring 之上,不是替代关系。