面试题答案
一键面试-
查询订单列表:
- 索引设计:在订单表的
下单时间
字段上创建普通索引。例如在MySQL中可以使用CREATE INDEX idx_order_time ON orders (order_time);
- 理由:查询订单列表时,通常会按照下单时间进行排序展示。通过在
下单时间
字段创建索引,能够加快对订单按时间顺序的检索,减少全表扫描,提高查询效率。
- 索引设计:在订单表的
-
按用户查询订单:
- 索引设计:在订单表的
用户ID
字段上创建普通索引。例如在MySQL中使用CREATE INDEX idx_user_id ON orders (user_id);
- 理由:按用户查询订单时,
用户ID
是查询的关键条件。对用户ID
建立索引后,数据库可以直接定位到对应用户ID
的订单记录,避免对整个订单表进行遍历,极大提升查询速度。
- 索引设计:在订单表的
-
统计不同状态订单数量:
- 索引设计:在订单表的
订单状态
字段上创建普通索引。例如在MySQL中使用CREATE INDEX idx_order_status ON orders (order_status);
- 理由:统计不同状态订单数量时,
订单状态
是统计的依据。为订单状态
创建索引后,数据库在进行统计操作时,能更快速地定位到不同状态的订单,而不需要逐行扫描整个表,从而提升统计效率。另外,如果查询还涉及到其他条件(如统计某个时间段内不同状态订单数量),可以考虑在订单状态
和下单时间
等字段上创建联合索引,如CREATE INDEX idx_status_time ON orders (order_status, order_time);
,以满足多条件查询统计的优化需求。
- 索引设计:在订单表的