IT用語集 › データベース › スロークエリログ

スロークエリログ

データベース Svenska → 更新: 2026-10-23

設定した閾値より時間のかかったクエリをすべて記録する仕組み。「DBが遅い気がする」から「直すべきものの具体的な一覧」への最短ルートだ。

MySQLではslow_query_logとlong_query_timeで、PostgreSQLではlog_min_duration_statementで有効にする。最初は1秒程度の高い値から始め、最悪のケースが消えるにつれて閾値を下げていく。いきなり0にするとログに埋もれ、ディスクにも無駄な負荷がかかる。生のログはそのままでは使いにくく、pgBadgerやpt-query-digestがクエリを正規化して合計時間順に並べてくれる。最も重要な知見は、先頭に出るクエリが最も高コストとは限らないことだ。50ミリ秒のクエリが1万回走るほうが、10秒のクエリ1回よりも高くつく。そのためpg_stat_statementsは不可欠な補完手段になる。

← 用語集に戻る