#用PHPStan自定义规则检测Laravel中withCount导致的隐式N+1与内存泄漏
线上告警DB CPU飙升至92%,慢查日志显示大量SELECT COUNT(*) FROM orders WHERE user_id = ?,但代码明明用了withCount。深入排查发现,在循环中对已预加载的模型反复调用$user->orders()->count()会绕过缓存触发隐式N+1查询。本文揭示withCount的常见误用,并展示如何通过PHPStan自定义规则拦截此类隐患,避免内存泄漏与性能瓶颈。
git checkout