-- 迁移文件: 048_add_performance_indexes.sql -- 描述: 为高频查询字段添加性能优化索引 -- 需求: 7.1 - 数据库查询优化 -- ============================================ -- 用户表 (users) 索引 -- ============================================ -- phone 索引已存在于 005_create_users_table.sql -- created_at 索引已存在于 038_create_stats_indexes.sql -- ============================================ -- API 日志表 (api_log) 索引 -- ============================================ -- 用户日志查询:按用户ID和时间范围查询 -- 注:idx_api_log_user_created 已存在于 041_add_api_log_indexes.sql -- 接口统计:按接口路径和时间范围统计 CREATE INDEX IF NOT EXISTS idx_api_log_path_created ON aigcspace.api_log(api_path, created_at DESC); -- 错误日志筛选:按响应状态码筛选 CREATE INDEX IF NOT EXISTS idx_api_log_response_status ON aigcspace.api_log(response_status); -- ============================================ -- 消费记录表 (user_consumption) 索引 -- ============================================ -- 用户消费查询:idx_user_consumption_user_created 已存在于 030_create_user_consumption.sql -- 服务类型统计:按模型名称和时间范围统计 CREATE INDEX IF NOT EXISTS idx_user_consumption_model_created ON aigcspace.user_consumption(model_name, created_at DESC); -- ============================================ -- 充值记录表 (user_recharge_record) 索引 -- ============================================ -- 用户充值查询:按用户ID和时间范围查询 CREATE INDEX IF NOT EXISTS idx_user_recharge_user_created ON aigcspace.user_recharge_record(user_id, created_at DESC); -- status 索引已存在于 018_create_user_recharge_record.sql 和 038_create_stats_indexes.sql -- ============================================ -- 对话表 (ai_conversation) 索引 -- ============================================ -- 用户对话列表:按用户ID和时间范围查询 CREATE INDEX IF NOT EXISTS idx_ai_conversation_user_created ON aigcspace.ai_conversation(user_id, created_at DESC); -- ============================================ -- 消息表 (ai_message) 索引 -- ============================================ -- 对话消息列表:按会话ID和时间范围查询 CREATE INDEX IF NOT EXISTS idx_ai_message_conv_created ON aigcspace.ai_message(conversation_id, created_at DESC); -- ============================================ -- 回滚迁移(注释掉,仅作参考) -- ============================================ -- DROP INDEX IF EXISTS idx_api_log_path_created; -- DROP INDEX IF EXISTS idx_api_log_response_status; -- DROP INDEX IF EXISTS idx_user_consumption_model_created; -- DROP INDEX IF EXISTS idx_user_recharge_user_created; -- DROP INDEX IF EXISTS idx_ai_conversation_user_created; -- DROP INDEX IF EXISTS idx_ai_message_conv_created;