N+1
🔗 N+1問題がなんもわからんというだけの記事
ループ処理でデータを取得する時に、余計にクエリが発行されていてアプリケーションのパフォーマンスが下がる
https://github.com/alexeymezenin/laravel-best-practices/blob/master/japanese.md#bladeテンプレート内でクエリを実行しないeager-lodingを使うn--1問題
Bad
code:php
$users = User::all() // 全件取得(+1)
foreach ($users as $user) {
$profile = $user->profile; // users分(N)のデータ取得処理
}
Good
code:php
User::with('profile')->get(); // usersの数に限らずクエリの数は2回
with関数を使用することでEagerLoadingをする ( #PHP )