
Performance Optimization
クエリの最適化、N+1問題、eager loading、lazy loading、キャッシュ戦略、データベースのインデックス作成、プロファイリングツール
22 面接問題·
Senior
1LaravelにおけるN+1問題とは何ですか?
1
LaravelにおけるN+1問題とは何ですか?
回答
N+1問題は、Eloquentがコレクションを取得するために1つのクエリを実行し、その後リレーションを読み込むために要素ごとに追加のクエリを実行するときに発生します。これによりデータベースアクセスが増大し、大量のデータでパフォーマンスが大幅に低下します。with()によるeager loadingを使用すると、N個のクエリの代わりに1つの追加クエリですべてのリレーションを読み込めます。
2リレーションを読み込む際にN+1問題を解決するにはどのメソッドを使うべきですか?
2
リレーションを読み込む際にN+1問題を解決するにはどのメソッドを使うべきですか?
回答
with()メソッドはeager loadingを実行し、リレーションを1つの追加クエリで読み込みます。リレーションにアクセスする際にモデルごとにクエリを実行するのではなく、すべてのリレーションを事前に読み込みます。これによりSQLクエリの数が大幅に減り、パフォーマンスが向上します。
3eager loadingとlazy loadingの違いは何ですか?
3
eager loadingとlazy loadingの違いは何ですか?
回答
eager loadingはwith()を使ってメインクエリと同時にリレーションをすぐに読み込みますが、lazy loadingは最初のアクセス時にオンデマンドでリレーションを読み込みます。lazy loadingはループ内でリレーションにアクセスするとN+1問題を引き起こす可能性があります。リレーションを使用する場合、複数のクエリを避けるためにeager loadingが推奨されます。
4
LaravelにおけるCache::remember()の役割は何ですか?
5
Cache::remember()とCache::rememberForever()の違いは何ですか?
+19 面接問題
その他のLaravel面接トピック
PHPの基礎
Junior
25問PHP オブジェクト指向の基礎
Junior
20問Composer & Autoloading
Junior
18問Laravelの基礎
Junior
20問Laravel ルーティング
Junior
20問Blade Templates
Junior
18問Request & Response
Junior
20問Eloquent ORM の基礎
Junior
22問Eloquent Relationships
Mid-Level
25問Migrations & Schema Builder
Mid-Level
20問バリデーションとフォーム
Mid-Level
22問認証
Mid-Level
20問認可とPolicies
Mid-Level
18問API Resources & Authentication
Mid-Level
26問ミドルウェア
Mid-Level
18問Service Container & DI
Mid-Level
20問Queues & Jobs
Mid-Level
22問Events & Listeners
Mid-Level
18問通知とメール
Mid-Level
20問File Storage
Mid-Level
18問Testing & PHPUnit
Mid-Level
24問Caching
Mid-Level
18問Livewire & Inertia
Mid-Level
20問Eloquent Advanced
Senior
24問Repository Pattern
Senior
20問Laravel パッケージ
Senior
20問Security Best Practices
Senior
22問Laravel Octane
Senior
18問Laravel Distributed Systems
Senior
22問Observability & Monitoring
Senior
20問Deployment & DevOps
Senior
20問