chore: record session journal - 握力环训练趣味化

This commit is contained in:
2026-05-27 16:53:33 +08:00
parent 261f8315de
commit b9d2541b32
946 changed files with 107438 additions and 0 deletions
@@ -0,0 +1,35 @@
# 当前排查结论
## 已确认事实
* `stats.conversion/overview` 的主实现位于 `server/app/adminapi/logic/stats/ConversionLogic.php`
* 历史日志 `server/runtime/adminapi/log/202604/22.log` 中存在 MySQL 1064
`near '( q.follow_admin_ids, '$[*]' COLUMNS (...)'`
* 当前 `ConversionLogic.php` 中已经搜索不到 `JSON_TABLE`,说明旧问题可能已被部分替换
## 当前文件中的 MySQL 8 风险点
* 多处 `fieldRaw(...) + group(...)` 聚合
* 多处 `whereRaw(...)`
* 使用保留字表名 `order`
* `include_filters=1` 会额外触发筛选项构建,可能带出更多 SQL 路径
## 已观察到的性能热点
* `server/runtime/adminapi/log/202604/22.log` 中:
* `hydrateFanStats cost` 多次达到 `0.7s ~ 2.4s`
* `hydrateAppointmentStats` / `hydrateOrderAndAmountStats` 通常约 `0.08s ~ 0.13s`
* `include_filters=1``buildFilterOptions -> DiagnosisLogic::getAssistants` 曾达到 `18s+`
* 因此本次 SQL 优化应优先关注:
* `ConversionLogic::hydrateFanStats()`
* `ConversionLogic::buildFilterOptions()` 触发的医助筛选项路径
## 本次修复策略
*`ConversionLogic.php` 为主;若 `include_filters=1` 的真实瓶颈仍在 `DiagnosisLogic::getAssistants()`,允许一并做局部 SQL 优化
* 优先处理:
* `ONLY_FULL_GROUP_BY` 风险
* 原生 SQL / NULL 比较兼容性
* Builder 可替换的 `whereRaw`
*`order` 表相关的潜在保留字问题
* 明确慢点 SQL 的结构优化,避免全表扫描/不必要 join/重复聚合