chore: record session journal - 握力环训练趣味化
This commit is contained in:
+35
@@ -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/重复聚合
|
||||
Reference in New Issue
Block a user