はじめに
いつも忘れるので備忘録として残しておく
コード
DB::enableQueryLog();
$time_start = microtime(true);
//計測したい処理やSQL(複数発行されれば複数dumpされる)
$user = User::where('id', 10000)->get();
$time = microtime(true) - $time_start;
dump($time);
dd(DB::getQueryLog());
発行されるSQLを確認したい時
$user = User::where('id', 10000)->toSql();
dd($user);
おまけ
取得したコレクションを配列にしてログに吐く
$user = User::where('id', 10000)->get();
LOG::info(print_r($user->toArray(), true));
おまけその2
LaravelのAppServiceProvider.phpに下記追加することでstorage/logs/laravel.logに出力される
public function boot()
{
\Illuminate\Support\Facades\DB::listen(function ($query) {
\Illuminate\Support\Facades\Log::info('SQL Query: ' . $query->sql);
\Illuminate\Support\Facades\Log::info('Bindings: ' . json_encode($query->bindings));
\Illuminate\Support\Facades\Log::info('Time: ' . $query->time . 'ms');
});
}