排行榜每次都要对全量 work_orders + work_order_shares 做跨源去重聚合 (生产实测 742ms / 35,483 块 ≈ 277MB),而结果只在工单验收完成时才变化。 大厅每次刷新/窗口聚焦都会触发前端重新拉取,不缓存时该查询独占全库约 8% 的缓冲读。 - TTL 取 30s:名次变化以分钟计,30s 足够新鲜;按观测到的调用量,命中率接近 100%。 - 缓存键必须带 workerId:SQL 是 WHERE rank <= 10 OR worker_id = $2, 结果包含"当前打手自己的名次",键漏了 workerId 会把 A 的名次错发给 B (正确性问题),守卫测试专门锁定这一点。