mcpField
L
laravel:performance-eager-loading

laravel:performance-eager-loading

github.com/jpcaparas开发157171 次安装17 周前更新
代码仓库

关于 laravel:performance-eager-loading

面向 Laravel 开发者的技能,介绍如何减少关系加载开销并预防 N+1 查询,涵盖预加载、延迟加载防护和查询验证。

主要功能

  1. 01显式预加载关系
  2. 02获取模型后加载关系
  3. 03开发环境防止延迟加载
  4. 04验证查询数量

适用场景

  1. 01减少分页结果的关系查询
  2. 02在开发环境发现意外延迟加载
  3. 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