-- ============================================ -- 优化 get-store-monthly-trend 接口性能的索引 -- ============================================ -- 说明:这些索引专门为门店月度趋势接口优化 -- 执行前请检查索引是否已存在,避免重复创建 -- ============================================ -- 1. lq_kd_kdjlb (开单记录表) 索引 -- ============================================ -- 用于:开单业绩按月统计 -- 查询条件:djmd (门店ID), F_IsEffective, kdrq (开单日期) -- 分组:DATE_FORMAT(kdrq, '%Y%m') -- 索引:用于门店+时间范围查询(如果已存在 idx_kd_kdjlb_store_date_effective 可跳过) -- CREATE INDEX IF NOT EXISTS idx_kd_kdjlb_store_date_effective -- ON lq_kd_kdjlb(djmd, kdrq, F_IsEffective); -- 补充索引:用于月份分组查询(优化GROUP BY性能) CREATE INDEX IF NOT EXISTS idx_kd_kdjlb_store_date_month ON lq_kd_kdjlb(djmd, F_IsEffective, kdrq); -- ============================================ -- 2. lq_xh_hyhk (耗卡记录表) 索引 -- ============================================ -- 用于:消耗业绩按月统计 -- 查询条件:md (门店ID), F_IsEffective, hksj (耗卡时间) -- 分组:DATE_FORMAT(hksj, '%Y%m') -- 索引:用于门店+时间范围查询 CREATE INDEX IF NOT EXISTS idx_xh_hyhk_store_date_month ON lq_xh_hyhk(md, F_IsEffective, hksj); -- ============================================ -- 3. lq_hytk_hytk (退卡表) 索引 -- ============================================ -- 用于:退卡金额按月统计 -- 查询条件:md (门店ID), F_IsEffective, tksj (退卡时间) -- 分组:DATE_FORMAT(tksj, '%Y%m') -- 索引:用于门店+时间范围查询(如果已存在 idx_hytk_effective_date 可跳过) -- CREATE INDEX IF NOT EXISTS idx_hytk_effective_date -- ON lq_hytk_hytk(F_IsEffective, tksj); -- 补充索引:用于门店+时间范围查询(优化门店维度查询) CREATE INDEX IF NOT EXISTS idx_hytk_store_date_month ON lq_hytk_hytk(md, F_IsEffective, tksj); -- ============================================ -- 4. 验证索引创建 -- ============================================ -- 验证索引是否创建成功 -- SELECT -- TABLE_NAME, -- INDEX_NAME, -- COLUMN_NAME, -- SEQ_IN_INDEX -- FROM INFORMATION_SCHEMA.STATISTICS -- WHERE TABLE_SCHEMA = DATABASE() -- AND TABLE_NAME IN ('lq_kd_kdjlb', 'lq_xh_hyhk', 'lq_hytk_hytk') -- AND INDEX_NAME LIKE 'idx_%' -- ORDER BY TABLE_NAME, INDEX_NAME, SEQ_IN_INDEX;