LaravelでN+1問題を解決する方法
- 2026.03.18
Laravelで発生するN+1問題は、Eloquentを使い始めた段階で非常によく遭遇するパフォーマンス問題の1つ。最初はデータ件数が少ないため気づきにくいが、本番データが増えてくると一覧画面、APIレスポンス、管理画面、バッチ処理などで急激に遅くなる原因になる。問題の本質は「親データを取得したあと […]
Laravelで発生するN+1問題は、Eloquentを使い始めた段階で非常によく遭遇するパフォーマンス問題の1つ。最初はデータ件数が少ないため気づきにくいが、本番データが増えてくると一覧画面、APIレスポンス、管理画面、バッチ処理などで急激に遅くなる原因になる。問題の本質は「親データを取得したあと […]
Laravel Telescopeは、開発中のアプリケーション内部で何が起きているかを可視化するための公式デバッグツール。HTTPリクエスト、例外、ログ、SQL、キュー、イベント、メール、通知、キャッシュ操作などをブラウザ上で一覧できるため、「どこで失敗したのか」「なぜ遅いのか」「想定外の副作用が起 […]
LaravelのTokenMismatchExceptionは、CSRFトークンの不一致によって発生する代表的な例外の1つ。特にPOST、PUT、PATCH、DELETEのような状態変更系リクエストで起こりやすく、フォーム送信、Ajax通信、ログイン画面、管理画面、外部Webhook受信時などで頻出 […]
Laravelでのデバッグでは、変数の中身や処理の流れを一時的に確認したい場面が頻繁にある。そのとき最も手軽に使われるのが dump() と dd()。どちらも値を可視化するための関数だが、役割は同じではない。dump() は「表示して処理を続ける」、dd() は「表示して処理を止める」という違いが […]
Laravelで「APP_KEYが設定されていない」状態になると、アプリケーションの暗号化機能が正常に動かず、起動時や特定処理で例外が発生する。Laravelの暗号化キーは config/app.php の key 設定に対応しており、その値は通常 APP_KEY 環境変数から読み込まれる。Lara […]
Polymorphicリレーションシップは、1つの関連テーブルを複数のモデルで共有したいときに使う仕組み。代表例は「投稿にも商品にもコメントを付けたい」「ユーザーにも記事にも画像を紐付けたい」「複数モデルに対していいねを付けたい」といったケースになる。通常の外部キー設計では、モデルごとに別テーブルや […]
Laravelの .env は、アプリケーションの挙動を環境ごとに切り替えるための中心的な仕組み。開発環境・検証環境・本番環境で同じコードを使いながら、DB接続先、メール設定、キャッシュ、キュー、外部APIキーなどを切り替えられる。一方で、.env の使い方を誤ると「本番だけ動かない」「設定変更が反 […]
Laravel Telescopeは、リクエスト、例外、ログ、DBクエリ、ジョブ、メール、通知、キャッシュ操作、スケジュール実行などを一元的に確認できる開発支援ツール。dd() やログ出力だけでは追い切れない「どのリクエストで」「どのSQLが」「どのジョブが」「どの例外で」問題になったのかを、時系列 […]
Laravel Horizonは、Redisベースのキューを「見える化」し、ワーカーのプロセス管理・スループット監視・失敗ジョブの追跡を一つにまとめる運用基盤。キュー処理が増えるほど、ログだけでは追いづらい「滞留」「再試行の嵐」「特定キューだけ遅い」「ワーカーが落ちている」などが発生しやすい。Hor […]
TokenMismatchException は、LaravelのCSRF保護(VerifyCsrfTokenミドルウェア)で「送信されたCSRFトークン」と「セッションに保存されているトークン」が一致しないときに発生する。フォーム送信で @csrf を入れ忘れた、AJAXで X-CSRF-TOKE […]