本文へスキップ

スロークエリログとは?

すろーくえりろぐ

スロークエリログとは、データベース実行時間が一定閾値を超えたSQLクエリを自動的に記録するログ機能で、パフォーマンス改善に活用されます。

スロークエリログ(Slow Query Log)は、MySQL・MariaDB・PostgreSQLなどのリレーショナルデータベース管理システム(RDBMS)が提供する機能で、設定した実行時間の閾値(スレッショルド)を超えたSQLクエリを専用のログファイルに記録する仕組みです。

MySQLでは slow_query_log を有効にし、long_query_time(秒)で閾値を設定します。デフォルト値は10秒ですが、本番環境では1〜2秒に下げて運用することが多く、場合によっては0.1秒以下に設定して微細な遅延も検出します。

ログに記録される主な情報は次の通りです。

  • クエリの実行時間(Query_time)とロック待ち時間(Lock_time)
  • 調査した行数(Rows_examined)と返した行数(Rows_sent)
  • 実行されたSQLの全文
  • 実行日時・接続ユーザー・対象データベース名

収集したログは mysqldumpslow コマンドや percona の pt-query-digest などで集計・分析できます。特定のクエリに対して EXPLAIN 文を実行することでインデックスの利用状況や実行計画を確認し、インデックス追加やクエリ書き換えによって改善策を検討します。

サービスの応答速度維持・サーバーリソース節約・ユーザー体験向上のために、スロークエリログの定期的な分析はデータベース運用の基本とされています。

使い方・例文

ウェブサービスでページ表示が遅いと感じたとき、スロークエリログを確認すると「特定の検索クエリが毎回1秒超かかっている」といった原因をすばやく特定できます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語