-- 迁移: 006_add_performance_indexes.sql -- 目的: 为常用查询字段添加索引,提升查询性能 -- 日期: 2026-04-24 -- ============================================ -- weather_data 表索引 -- ============================================ -- 索引:加速按用户查询天气数据列表 -- 用途:GET /weather 接口按 user_id + date 排序查询 CREATE INDEX IF NOT EXISTS idx_weather_data_user_id ON weather_data(user_id); -- 索引:加速按日期排序查询 -- 用途:列表查询默认按 date DESC, hour DESC, min DESC 排序 CREATE INDEX IF NOT EXISTS idx_weather_data_date ON weather_data(date DESC); -- 索引:加速用户收藏列表查询 -- 用途:GET /api/favorites 查询 user_id + is_favorite = true CREATE INDEX IF NOT EXISTS idx_weather_data_user_favorite ON weather_data(user_id, is_favorite); -- 索引:复合索引加速用户数据列表(无需额外排序) -- 用途:用户历史记录查询 CREATE INDEX IF NOT EXISTS idx_weather_data_user_date ON weather_data(user_id, date DESC); -- ============================================ -- users 表索引 -- ============================================ -- 索引:加速 openid 查询(登录时高频使用) -- 注意:openid 可能已有 UNIQUE 约束自动创建索引,此处确保存在 CREATE INDEX IF NOT EXISTS idx_users_openid ON users(openid); -- ============================================ -- payment_orders 表索引(补充) -- ============================================ -- 索引:加速按状态查询待处理订单 -- 用途:管理员查询 pending 状态订单 CREATE INDEX IF NOT EXISTS idx_payment_orders_status ON payment_orders(status); -- ============================================ -- web_login_codes 表索引(来自 005) -- ============================================ -- 确保 web_login_codes 表索引存在(05已创建,此处确保兼容性) -- 登录码查询和过期清理 CREATE INDEX IF NOT EXISTS idx_web_login_codes_code ON web_login_codes(code); CREATE INDEX IF NOT EXISTS idx_web_login_codes_expires_at ON web_login_codes(expires_at); COMMENT ON TABLE weather_data IS '添加性能索引:user_id、date、is_favorite';