laravel-performance-eager-loading について
laravel-performance-eager-loadingは、モデルのリレーションを効率よく読み込み、N+1クエリを防ぐLaravel向けスキルです。明示的なリレーション読み込み、開発・テスト環境での対策、クエリの検証を扱います。
主な機能
- 01モデルのリレーションを明示的に読み込み
- 02load()とloadMissing()の利用
- 03開発・テストでの遅延読み込み防止
- 04リレーションクエリと件数の検証
活用シーン
- 01投稿者とコメントを効率よく読み込み
- 02開発中に意図しない遅延読み込みを検出
- 03ログツールでリレーションクエリ量を確認
- 04予期しないクエリ増加をテスト
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ noartem/ skills --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 対応