| 1234567891011121314151617181920212223242526272829303132333435363738 |
- -- =============================================================================
- -- hdApp 充值记录/统计查询索引建议 - xhRecharge
- -- =============================================================================
- -- 当前查询形态:
- -- 1. /recharge/list:
- -- shopId + status,按 addTime DESC,id DESC 分页;
- -- 可选 customId / onlinePay + payWay / isRefund。
- -- 2. /recharge/stat:
- -- shopId + payStatus + status + addTime 时间范围;
- -- 按渠道或客户聚合,并用 isRefund 统计减少金额。
- --
- -- 当前表已有索引:
- -- PRIMARY(id), orderSn(orderSn), custom_status(customId,status),
- -- main_custom_status(mainId,customId,status)。
- -- 这些索引缺少 shopId、payStatus、addTime、isRefund,对当前 hdApp 统计和分页查询帮助有限。
- --
- -- 执行前建议先在目标环境 EXPLAIN /recharge/list 与 /recharge/stat 的 SQL;
- -- 大表请在低峰期执行,并按 MySQL 版本确认 ALGORITHM/LOCK 支持情况。
- -- =============================================================================
- ALTER TABLE `xhRecharge`
- ADD COLUMN `isRefund` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否退款:0不是 1是' AFTER status;
- ALTER TABLE `xhRecharge`
- ADD INDEX `idx_hd_recharge_list` (`shopId`, `status`, `addTime`),
- ALGORITHM = INPLACE,
- LOCK = NONE;
- ALTER TABLE `xhRecharge`
- ADD INDEX `idx_hd_recharge_stat` (`shopId`, `payStatus`, `status`, `addTime`),
- ALGORITHM = INPLACE,
- LOCK = NONE;
- -- 如果客户维度明细页仍然慢,再评估增加这个索引;不要在未验证前盲目增加写入开销。
- -- ALTER TABLE `xhRecharge`
- -- ADD INDEX `idx_hd_recharge_custom_list` (`shopId`, `customId`, `status`, `addTime`),
- -- ALGORITHM = INPLACE,
- -- LOCK = NONE;
|