关于 laravel:performance-eager-loading
面向 Laravel 开发者的技能,介绍如何减少关系加载开销并预防 N+1 查询,涵盖预加载、延迟加载防护和查询验证。
主要功能
- 01显式预加载关系
- 02获取模型后加载关系
- 03开发环境防止延迟加载
- 04验证查询数量
适用场景
- 01减少分页结果的关系查询
- 02在开发环境发现意外延迟加载
- 03通过测试或调试工具检查查询数量
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ jpcaparas/ superpowers-laravel --skill laravel:performance-eager-loading安装后在 Claude Code 中输入/laravel:performance-eager-loading确认已加载。
详细介绍
预加载与 N+1 问题防范
显式加载关联关系
Post::with(['author', 'comments'])->paginate();
- 在需要时,获取模型后使用
load()/loadMissing() - 为基础查询和关联关系仅选择所需的列
在开发/测试环境中防止延迟加载
将其添加到服务提供程序(非生产环境)中:
Model::preventLazyLoading(! app()->isProduction());
验证
- 使用查询日志记录器或 debugbar 确认关联关系查询次数已降至最低
- 添加断言查询次数或避免意外查询激增的测试
评论
支持 Markdown