-- ============================================ -- 优化 get-dashboard-data 接口性能的索引 -- ============================================ -- 说明:这些索引专门为仪表盘接口优化 -- 执行前请检查索引是否已存在,避免重复创建 -- ============================================ -- 1. lq_kd_kdjlb (开单记录表) 索引 -- ============================================ -- 用于:门店业绩汇总、健康师业绩汇总、最高开单金额会员查询 -- 查询条件:F_IsEffective, kdrq (时间范围), djmd (门店ID) -- 索引:用于时间范围查询和门店统计(如果已存在 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); -- ============================================ -- 2. lq_hytk_hytk (退卡表) 索引 -- ============================================ -- 用于:退卡金额统计 -- 查询条件:F_IsEffective, tksj (退卡时间) -- 索引:用于时间范围查询 CREATE INDEX IF NOT EXISTS idx_hytk_effective_date ON lq_hytk_hytk(F_IsEffective, tksj); -- ============================================ -- 3. lq_xh_hyhk (耗卡记录表) 索引 -- ============================================ -- 用于:消耗业绩汇总、最高消耗金额会员查询 -- 查询条件:F_IsEffective, hksj (耗卡时间), hy (会员ID) -- 索引1:用于时间范围查询 CREATE INDEX IF NOT EXISTS idx_xh_hyhk_effective_date ON lq_xh_hyhk(F_IsEffective, hksj); -- 索引2:用于会员统计(补充) CREATE INDEX IF NOT EXISTS idx_xh_hyhk_member_effective ON lq_xh_hyhk(hy, F_IsEffective, hksj); -- ============================================ -- 4. lq_xh_pxmx (耗卡品项明细表) 索引 -- ============================================ -- 用于:消耗业绩汇总(JOIN) -- 查询条件:F_ConsumeInfoId, F_IsEffective -- 索引:用于JOIN(如果已存在可跳过) -- CREATE INDEX IF NOT EXISTS idx_xh_pxmx_consume_effective -- ON lq_xh_pxmx(F_ConsumeInfoId, F_IsEffective); -- ============================================ -- 5. lq_khxx (客户信息表) 索引 -- ============================================ -- 用于:会员统计汇总、会员类型分布、最高剩余权益会员 -- 查询条件:F_IsEffective, khlx (客户类型), F_CreateTime, F_SleepDays, F_RemainingRightsAmount -- 索引1:用于会员类型和有效性过滤(最常用) CREATE INDEX IF NOT EXISTS idx_khxx_type_effective ON lq_khxx(khlx, F_IsEffective); -- 索引2:用于创建时间统计(新会员统计) CREATE INDEX IF NOT EXISTS idx_khxx_create_time ON lq_khxx(F_CreateTime, F_IsEffective, khlx); -- 索引3:用于剩余权益排序(最高剩余权益会员) CREATE INDEX IF NOT EXISTS idx_khxx_remaining_effective ON lq_khxx(F_RemainingRightsAmount, F_IsEffective); -- ============================================ -- 6. 验证索引创建 -- ============================================ -- 验证索引是否创建成功 -- 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_hytk_hytk', 'lq_xh_hyhk', 'lq_xh_pxmx', 'lq_khxx') -- AND INDEX_NAME LIKE 'idx_%' -- ORDER BY TABLE_NAME, INDEX_NAME, SEQ_IN_INDEX;