PHP/Elixirエンジニアのブログ

有益なアウトプットを心がけます。

【Laravel】withによるEagerローディング

データベースへのアクセス回数を軽減させるために(←N+1問題)
withメソッドを利用してデータを取得する方法があります。

withでデータを取得する

モデル :: with(リレーション名)->get();

このwithを使うとレコード取得方法が変わります。

1.モデルを取得
2.モデルのIDの値をまとめ、それらのIDのレコードを取得。

たった2回のデータベースアクセスですべてを取得できます。
このwithのような取得方法を
Eagerローディングと呼びます。

クラウドなどを利用してアプリを公開する場合、
データベースのアクセス数の増加はそのまま
料金に反映されるので少しでも減少できれば
コスト減に役立ちます。