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を入力して読み込まれたか確認します。
詳細
Eager Loading と N+1 の防止
リレーションを明示的にロードする
Post::with(['author', 'comments'])->paginate();
- 必要に応じて、モデルを取得した後に
load()/loadMissing()を使用します - ベースクエリとリレーションの両方で、必要なカラムのみを選択します
開発環境/テスト環境で遅延ロードを防ぐ
本番環境以外のサービスプロバイダーに追加します。
Model::preventLazyLoading(! app()->isProduction());
確認する
- クエリロガーまたはデバッグバーを使用して、リレーションクエリが最小限に抑えられていることを確認します
- クエリ数を検証するテストを追加するか、予期しないクエリの急増を防ぎます
コメント
Markdown 対応