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

针对AI大模型评测平台的批量测试场景,数据库索引应如何规划?请说明为何需要构建复合索引,并阐述其设计依据。

后端开发性能优化技术原理方案权衡

考察说明

考察对数据库索引设计,尤其是复合索引在特定场景下应用的理解。

回答思路

  1. 【回答框架 1】复合索引是基于多个列的索引,其设计需遵循最左前缀原则,即查询条件需从索引的最左列开始匹配,才能利用该索引。在批量测试场景中,典型查询模式是按测试批次、模型、时间范围或状态过滤,并将测试结果按时间排序。因此,复合索引的列顺序应结合查询条件和排序需求设计,例如将等值条件列放在前面,范围条件或排序列放在后面,以最大化索引效率。
  2. 【回答框架 2】批量测试数据的特征是高写入、高查询并发,且查询模式相对固定。复合索引能通过覆盖部分查询减少回表,提升查询性能。但索引会占用存储空间并影响写入性能,因此需权衡索引数量与查询收益。建议根据实际查询频率和响应时间要求,创建少量高收益的复合索引,避免冗余索引。
  3. 【回答框架 3】设计时需分析查询模式,确定高频查询的关键列组合。例如,若常用按测试批次ID和模型ID查询结果,可建立以batch_id和model_id开头的复合索引。同时,考虑排序需求,若按test_time排序,可将test_time加入索引末尾,以利用索引有序性避免文件排序。但要注意范围查询会阻断后续列的使用,需谨慎排列。
  4. 【关键点 1】复合索引遵循最左前缀原则,列顺序决定索引使用效率。
  5. 【关键点 2】批量测试场景优先为高频查询组合(如批次+模型+时间)建立复合索引。
  6. 【关键点 3】索引增加写开销,需平衡查询性能与存储、写入成本。
  7. 【关键点 4】使用EXPLAIN验证索引是否被使用及是否回表。
  8. 【关键点 5】定期监控慢查询,动态调整索引。
  9. 【易错点 1】忽略最左前缀原则,可能导致索引失效。
  10. 【易错点 2】过度创建索引,影响插入和更新性能。
  11. 【易错点 3】对低选择性列建索引,收益有限却增加开销。