面试题答案
一键面试索引创建思路
- 复合索引:创建一个复合索引
{user_id: 1, order_date: 1, total_amount: -1}
。 - 前缀索引:如果
user_id
字段较长,可以考虑创建前缀索引,减少索引存储开销,同时不影响聚合操作性能。
理由
- 复合索引:
user_id
用于按用户分组,order_date
用于按月统计,total_amount
用于排序。此索引顺序有助于 MongoDB 高效地完成聚合操作中的分组、统计和排序步骤,减少数据扫描量。 - 前缀索引:在保证查询性能的前提下,降低索引存储成本,特别是在数据量较大的情况下,能有效减少索引占用的磁盘空间和内存,提高整体系统性能。