| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- -- ============================================================================
- -- opsdev 模块数据库索引优化脚本
- -- 生成时间: 2026-05-28
- -- 目标库: dashoo_oms
- -- 说明: 当前核心查询表几乎零索引,全部走全表扫描,前台查询慢。
- -- 数据量不大(最大 4231 行),索引开销可忽略。
- -- 注意: 每条 ALTER 独立执行,单条失败不影响后续。
- -- ============================================================================
- -- ============================================================================
- -- 1. ops_delivery_project — 交付项目(所有列表查询核心表,0 索引)
- -- 影响: GetList / GetListAll / GetDelegatedProjectList / 项目盘点
- -- ============================================================================
- ALTER TABLE ops_delivery_project ADD INDEX idx_deleted_delivery_user (deleted_time, delivery_user_id);
- ALTER TABLE ops_delivery_project ADD INDEX idx_deleted_project_status (deleted_time, project_status);
- ALTER TABLE ops_delivery_project ADD INDEX idx_deleted_product_line (deleted_time, product_line);
- ALTER TABLE ops_delivery_project ADD INDEX idx_deleted_sales_user (deleted_time, sales_user_id);
- ALTER TABLE ops_delivery_project ADD INDEX idx_deleted_contract (deleted_time, contract_id);
- ALTER TABLE ops_delivery_project ADD INDEX idx_deleted_attr4 (deleted_time, attribute4);
- ALTER TABLE ops_delivery_project ADD INDEX idx_contract_no (contract_no);
- -- ============================================================================
- -- 2. ops_operation_event — 运维事件(列表/历史/看板/统计,0 索引)
- -- 影响: GetList / GetHistoryList / GetKanbanData / GetStats / Export
- -- ============================================================================
- ALTER TABLE ops_operation_event ADD INDEX idx_event_status_deleted (event_status, deleted_time);
- ALTER TABLE ops_operation_event ADD INDEX idx_ops_user_deleted (ops_user_id, deleted_time);
- ALTER TABLE ops_operation_event ADD INDEX idx_feedback_date (feedback_date);
- ALTER TABLE ops_operation_event ADD INDEX idx_contract_deleted (contract_id, deleted_time);
- -- ============================================================================
- -- 3. ops_event_task_work_hour — 研发任务工时(看板核心表,0 索引)
- -- 影响: GetDashboardData (周视图工时汇总)
- -- ============================================================================
- ALTER TABLE ops_event_task_work_hour ADD INDEX idx_user_date_deleted (ops_user_id, actual_work_date, deleted_time);
- ALTER TABLE ops_event_task_work_hour ADD INDEX idx_task_deleted (task_id, deleted_time);
- -- ============================================================================
- -- 4. ops_event_task — 研发任务(已有部分索引,补关键复合索引)
- -- 影响: GetList / GetDashboardData / GetScheduleStats
- -- ============================================================================
- ALTER TABLE ops_event_task ADD INDEX idx_ops_user_plan (ops_user_id, deleted_time, plan_start_time);
- ALTER TABLE ops_event_task ADD INDEX idx_plan_end_status (plan_end_time, task_status, deleted_time);
- ALTER TABLE ops_event_task ADD INDEX idx_event_type_id (event_type, event_id, deleted_time);
- -- ============================================================================
- -- 5. 记录表 — 外键查询全表扫描
- -- ============================================================================
- ALTER TABLE ops_event_task_record ADD INDEX idx_task_id (task_id);
- ALTER TABLE ops_delivery_project_event_record ADD INDEX idx_delivery_event_id (delivery_event_id);
- ALTER TABLE ops_operation_event_record ADD INDEX idx_event_id (event_id);
- -- ============================================================================
- -- 6. 附件表 — 外键查询全表扫描
- -- ============================================================================
- ALTER TABLE ops_delivery_project_event_attachment ADD INDEX idx_delivery_event_id (delivery_event_id);
- ALTER TABLE ops_delivery_project_event_attachment ADD INDEX idx_event_record_id (event_record_id);
- ALTER TABLE ops_operation_event_attachment ADD INDEX idx_event_id (event_id);
- ALTER TABLE ops_operation_event_attachment ADD INDEX idx_event_record_id (event_record_id);
- ALTER TABLE ops_event_task_attachment ADD INDEX idx_task_id (task_id);
- ALTER TABLE ops_event_task_attachment ADD INDEX idx_task_record_id (task_record_id);
- -- ============================================================================
- -- 7. ops_operation_work_hour — 运维工时(统计 UNION ALL 查询)
- -- ============================================================================
- ALTER TABLE ops_operation_work_hour ADD INDEX idx_work_date_deleted (work_date, deleted_time);
- -- ============================================================================
- -- 8. ctr_contract — 合同表(项目盘点 LEFT JOIN)
- -- ============================================================================
- ALTER TABLE ctr_contract ADD INDEX idx_contract_code (contract_code);
- -- ============================================================================
- -- 9. 补充: base_region_auth 索引可能不匹配查询条件
- -- 当前索引: (user_id, sale_region_id)
- -- 实际查询: user_id = ? AND city_id = sales_region_id (用的是 city_id 列)
- -- 当前数据量小影响不大,但建议确认后调整。
- -- ALTER TABLE base_region_auth ADD INDEX idx_user_city (user_id, city_id);
- -- ============================================================================
|