在某电商平台的订单表(包含订单ID、用户ID、商品ID、下单时间、订单金额等字段)中,频繁执行“查询某用户30天内的订单”操作。为提高该查询的效率,最适合创建索引的字段是()。A. 订单IDB. 用户ID + 下单时间C. 商品IDD. 订单金额
考点解析
本题核心考查数据库索引的作用与设计原则:
详细分析过程
题干中查询条件是“某用户(用户ID)+ 30天内(下单时间)”,需针对该条件设计索引:
工作中的实际应用
早年维护一个订单系统时,用户投诉“查询近期订单”太慢,要等5秒以上。排查发现订单表有1000万条数据,且未针对“用户ID+下单时间”建索引,查询时需全表扫描。
创建复合索引后,查询时间从5秒降至0.1秒。但后来发现,新增订单的速度变慢了——因每次插入都要更新索引。这提醒我们:索引不是越多越好,需根据业务场景权衡。比如,若系统以查询为主(如电商订单查询),多建索引利大于弊;若以写入为主(如实时日志系统),则应少建索引。
另外,曾犯过一个错误:给“订单状态”(值只有“待支付”“已完成”等,重复率高)建了索引,结果查询时索引几乎没生效,反而浪费了存储空间。这说明,值重复率高的字段不适合建索引。
答案总结
针对频繁使用的查询条件设计复合索引,遵循最左前缀原则,能最大化提升查询效率。
答案:B