概要
N+1を検知してアラートで知らせてくれるライブラリを導入して使ってみます。
実際にプロジェクトにも導入してみました。
インストール
composer require beyondcode/laravel-query-detector --dev
php artisan vendor:publish --provider=BeyondCode\\QueryDetector\\QueryDetectorServiceProvider
configディレクトリに設定ファイルが追加されました。
邪魔になったらコメントアウトで消せます。
config/querydetector.php
'output' => [
// 画面上でアラートを検知内容を表示
\BeyondCode\QueryDetector\Outputs\Alert::class,
// ログファイルに検知内容を表示
\BeyondCode\QueryDetector\Outputs\Log::class,
]
コンソールにも表示できます
'output' => [
\BeyondCode\QueryDetector\Outputs\Console::class
]
実際に警察に出てきてもらう🚔
さんぷる
$schedules = Schedule::all();
foreach ($schedules as $schedule) {
echo $schedule->user->name;
}
はい怒られました。
画面に出てくるのがうざい場合はコンソールだけにしましょう。
プロジェクトに導入してみて
○ 無意識に起こしてしまっていたN+1を知れ、早急に対処に取り掛かれる
× ごちゃごちゃしてるコードだと実際どこのコードなのか分からない