-- 给 /api/web/admin/orders 列表接口做性能索引补强(幂等尽量实现) -- 注意:不同 MySQL 版本对 IF NOT EXISTS 支持不同;若执行失败,请先 SHOW INDEX 再手动判断是否已存在。 -- 1) 覆盖最常见列表:WHERE is_del=0 ORDER BY create_at DESC -- 目标:减少 Using filesort / 全表扫描风险 ALTER TABLE biz_order ADD INDEX idx_order_isdel_createat (is_del, create_at); -- 2) 常用筛选:区域 + 订单主状态 + 时间排序 ALTER TABLE biz_order ADD INDEX idx_order_isdel_region_orderstatus_createat (is_del, region_id, order_status, create_at); -- 3) 常用筛选:区域 + 创建时间范围(startDate/endDate) ALTER TABLE biz_order ADD INDEX idx_order_isdel_region_createat (is_del, region_id, create_at); -- 4) 单号查询建议: -- 当前实现是 order_no LIKE '%xxx%',该写法通常无法走索引。 -- 若业务可改为前缀匹配(LIKE 'xxx%')或精确匹配(=),将显著提升性能。 -- 订单号已有唯一索引 uk_order_no(可用于 '=' 或前缀匹配)。