世界を旅して暮らしたい放浪エンジニアブログ

Laravel開発時に実行されたSQLを確認する方法

最近はORMにクエリーを任せることが多くなっていますが、実際に流れているSQLを確認し冗長なクエリーを減らす・SQLのチューニングを行うというのはRDBを利用しているエンジニアとしては当たり前。ということで、Laravelで実行されたSQLを確認する方法をメモします。

[ 目次 ]

laravel-debugbarのQueriesタブからもSQLを確認することができます。
是非、laravel-debugbarを導入する から試してみてください。

はじめに

こんにちは、香港に住んでいるWEBデベロッパーのなかむ(@nakanakamu0828)です。

今回はLaravel開発で実行されたSQLを確認する際のメモを残したいと思います。
最近はORMにクエリーを任せることが多くなっていますが、実際に流れているSQLを確認し冗長なクエリーを減らす・SQLのチューニングを行うというのはRDBを利用しているエンジニアとしては当たり前です。
どんなSQLが発行されているか確認しましょう。

■ 検証環境

ライブラリ バージョン
PHP ^7.1.3
Laravel 5.7.*

ログ出力を試す

\DB::enableQueryLog();

//  SQL実行
$user_list = $UserModel::where('sex' , 'male')
  ->where(function($query){
    $query->where('age', '<', 10)
      ->orWhere('score', '>', 70);
  })
  ->get();

//  SQLログを取得してdump
dd(\DB::getQueryLog());

もちろん簡単なクエリーについては確認不要だと思います。
複雑なものはしっかりSQLを確認し、直接実行して取得したデータの内容を確認したいですね。

今後の検討事項

ログの出力を仕組化するかどうかを検討したいと思っています。
local or development環境だけSQLログを出力し、開発者にSQLのクエリーを意識するようにしたいです。

https://codebriefly.com/handle-query-logging-laravel-5-6/

こちらが参考になるのではないかと思っています。
production環境については、DBのスロークエリーをDBAのような立場の人が確認するか監視システムを導入することでクエリーのチェックをしていきたいところです。
なので、production環境ではSQLログは吐きません。

参考URL

前のページ

次のページ

Profile

なかむ🇭🇰Webデベロッパー

なかむ🇭🇰Webデベロッパー

香港在住4年目になるWEBエンジニアのなかむです。 現在は、LaravelやRailsを利用したWEB開発を中心にエンジニアをしています。 顧客は全て日本の企業になります。リモート開発にて各企業様の支援を行なっております

プロフィール詳細はこちら

Latest Posts