feat: 优化商品洞察相关代码逻辑、新增性能优化 SQL 并更新前端样式
This commit is contained in:
33
sql/performance_indexes.sql
Normal file
33
sql/performance_indexes.sql
Normal file
@@ -0,0 +1,33 @@
|
||||
-- =============================================
|
||||
-- 性能优化: 补全关键查询索引
|
||||
-- 执行方式: 在 MySQL 中直接执行,IF NOT EXISTS 保证幂等
|
||||
-- =============================================
|
||||
|
||||
-- 1. 订单表: pay_time (大盘总览/趋势图/订货建议 的 WHERE 条件)
|
||||
-- DDL 中已定义,此处兜底确保存在
|
||||
CREATE INDEX idx_pay_time ON dwd_trade_order_detail(pay_time);
|
||||
-- 如果已存在会报错,可忽略。或使用以下方式:
|
||||
-- ALTER TABLE dwd_trade_order_detail ADD INDEX idx_pay_time(pay_time);
|
||||
|
||||
-- 2. 订单表: status (数据截止时间查询 WHERE status = 'TRADE_SUCCESS')
|
||||
ALTER TABLE dwd_trade_order_detail ADD INDEX idx_status(status);
|
||||
|
||||
-- 3. 订单表: etl_update_time (客户聚合增量检测)
|
||||
ALTER TABLE dwd_trade_order_detail ADD INDEX idx_etl_update_time(etl_update_time);
|
||||
|
||||
-- 4. 订单表: outer_item_id (商品洞察/订货建议 GROUP BY)
|
||||
ALTER TABLE dwd_trade_order_detail ADD INDEX idx_outer_item_id(outer_item_id);
|
||||
|
||||
-- 5. 退款表: created_time (大盘总览退款额统计)
|
||||
ALTER TABLE dwd_trade_refund_detail ADD INDEX idx_created_time(created_time);
|
||||
|
||||
-- 6. 退款表: etl_update_time (增量检测)
|
||||
ALTER TABLE dwd_trade_refund_detail ADD INDEX idx_etl_update_time(etl_update_time);
|
||||
|
||||
-- 7. 客户表: etl_update_time (客户聚合增量检测)
|
||||
ALTER TABLE dim_customer_info ADD INDEX idx_etl_update_time(etl_update_time);
|
||||
|
||||
-- 验证索引:
|
||||
-- SHOW INDEX FROM dwd_trade_order_detail;
|
||||
-- SHOW INDEX FROM dwd_trade_refund_detail;
|
||||
-- SHOW INDEX FROM dim_customer_info;
|
||||
@@ -42,6 +42,9 @@ CREATE TABLE `dwd_trade_order_detail` (
|
||||
KEY `idx_tid` (`tid`),
|
||||
KEY `idx_pay_time` (`pay_time`),
|
||||
KEY `idx_update_time` (`update_time`),
|
||||
KEY `idx_etl_update_time` (`etl_update_time`),
|
||||
KEY `idx_status` (`status`),
|
||||
KEY `idx_outer_item_id` (`outer_item_id`),
|
||||
KEY `idx_buyer` (`buyer_phone`, `yz_open_id`),
|
||||
KEY `idx_item_sku` (`item_id`, `sku_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='交易明细事实表 (T+1有赞同步)';
|
||||
@@ -79,7 +82,8 @@ CREATE TABLE `dim_customer_info` (
|
||||
UNIQUE KEY `uk_yz_open_id` (`yz_open_id`),
|
||||
UNIQUE KEY `uk_mobile` (`mobile`), -- 可空唯一: MySQL 允许多个 NULL, 有手机号则保证不重复
|
||||
KEY `idx_wx_union_id` (`wx_union_id`),
|
||||
KEY `idx_last_pay_time` (`last_pay_time`)
|
||||
KEY `idx_last_pay_time` (`last_pay_time`),
|
||||
KEY `idx_etl_update_time` (`etl_update_time`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='统一客户维度宽表 (OneID及基础RFM视角)';
|
||||
|
||||
-- ==========================================
|
||||
@@ -170,7 +174,9 @@ CREATE TABLE `dwd_trade_refund_detail` (
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_refund_id` (`refund_id`),
|
||||
KEY `idx_tid` (`tid`),
|
||||
KEY `idx_created_time` (`created_time`),
|
||||
KEY `idx_success_time` (`success_time`),
|
||||
KEY `idx_etl_update_time` (`etl_update_time`),
|
||||
KEY `idx_yz_open_id` (`yz_open_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='售后与退款明细表';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user