后端岗位面试题更新 2026-08-05

假设有一个订单表 order(MySQL,InnoDB 引擎),包含用户 ID、订单时间等字段。现在有三种查询需求:a. 查询某个用户的全部订单;b. 查询某一天的全部订单;c. 查询某个用户在某天的全部订单。请设计合理的索引方案,并说明理由。

深圳虾皮信息科技有限公司后端开发互联网/IT性能优化技术原理技术选型InnoDBMySQL

考察说明

考察基于查询模式设计合适索引的能力,以及理解索引选择与回表、覆盖索引之间的关系

回答思路

  1. 能根据三种查询需求分别设计索引
  2. 针对需求 a 和 c 能考虑联合索引(用户ID, 订单时间)使得该索引同时支持用户级查询及用户+时间查询
  3. 针对需求 b 能考虑在订单时间上建立索引,并注意选择合适的索引选项
  4. 能说明选择联合索引的理由,避免回表或降低回表成本
  5. 能分析不同索引策略的取舍,例如是否满足覆盖索引、排序需求等
本题已收录答题指导

本题附完整参考答案与评分标准

登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。