Blame view

sql/优化金三角业绩排行榜接口性能索引.sql 2.62 KB
430949ed   “wangming”   feat: 优化门店数据结构分析功能
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
  -- ============================================
  -- 优化 get-gold-triangle-performance-ranking 接口性能的索引
  -- ============================================
  -- 说明:这些索引专门为金三角业绩排行榜接口优化
  -- 执行前请检查索引是否已存在,避免重复创建
  
  -- ============================================
  -- 1. lq_ycsd_jsj (金三角设定表) 索引
  -- ============================================
  -- 用于:WHERE jsj.yf = @StatisticsMonth 查询条件
  -- 查询条件:yf (月份)
  
  -- 索引:用于月份查询(最常用)
  CREATE INDEX IF NOT EXISTS idx_ycsd_jsj_yf 
  ON lq_ycsd_jsj(yf);
  
  -- ============================================
  -- 2. lq_jinsanjiao_user (金三角用户绑定表) 索引
  -- ============================================
  -- 用于:JOIN和过滤条件
  -- 查询条件:status = 'ACTIVE', F_DeleteMark = 0, user_id (用于JOIN)
  
  -- 索引1:用于JOIN和状态过滤(最常用)
  CREATE INDEX IF NOT EXISTS idx_jinsanjiao_user_user_status_delete 
  ON lq_jinsanjiao_user(user_id, status, F_DeleteMark);
  
  -- 索引2:用于反向JOINjsj_id用于关联金三角设定)
  CREATE INDEX IF NOT EXISTS idx_jinsanjiao_user_jsj_status_delete 
  ON lq_jinsanjiao_user(jsj_id, status, F_DeleteMark);
  
  -- ============================================
  -- 3. lq_kd_jksyj (开单健康师业绩表) 索引
  -- ============================================
  -- 用于:JOIN和过滤条件
  -- 查询条件:jkszh (用于JOIN), F_IsEffective = 1
  
  -- 索引:用于JOIN和有效性过滤
  CREATE INDEX IF NOT EXISTS idx_kd_jksyj_jkszh_effective 
  ON lq_kd_jksyj(jkszh, F_IsEffective);
  
  -- ============================================
  -- 4. lq_kd_kdjlb (开单记录表) 索引
  -- ============================================
  -- 用于:JOIN和过滤条件
  -- 查询条件:F_Id (用于JOIN), F_IsEffective = 1, kdrq (时间范围)
  
  -- 索引:用于JOIN、有效性过滤和时间范围查询
  -- 注意:如果 idx_kd_kdjlb_store_date_effective 已存在,此索引可能冗余
  -- 但为了JOIN性能,保留此索引
  CREATE INDEX IF NOT EXISTS idx_kd_kdjlb_id_effective_date 
  ON lq_kd_kdjlb(F_Id, F_IsEffective, kdrq);
  
  -- ============================================
  -- 5. 验证索引创建
  -- ============================================
  -- 验证索引是否创建成功
  -- SELECT 
  --     TABLE_NAME,
  --     INDEX_NAME,
  --     COLUMN_NAME,
  --     SEQ_IN_INDEX
  -- FROM INFORMATION_SCHEMA.STATISTICS
  -- WHERE TABLE_SCHEMA = DATABASE()
  --     AND TABLE_NAME IN ('lq_ycsd_jsj', 'lq_jinsanjiao_user', 'lq_kd_jksyj', 'lq_kd_kdjlb')
  --     AND INDEX_NAME LIKE 'idx_%'
  -- ORDER BY TABLE_NAME, INDEX_NAME, SEQ_IN_INDEX;