Closed3
スロークエリをさっと設定してさっと確認する

設定方法
query
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL slow_query_log_file = '/path/to/slow-query.log';
SET GLOBAL long_query_time = 3; -- 3秒以上かかるクエリを記録
my.cnf
[mysqld]
slow_query_log=ON
long_query_time = 3
slow_query_log_file = /path/to/slow-query.log
postgresql.conf
log_min_duration_statement = 3000 -- 3000ミリ秒(3秒)以上かかるクエリを記録

# Time: 2025-05-01T08:27:43.000000Z
# User@Host: root[root] @ localhost []
# Query_time: 3.123456 Lock_time: 0.000234 Rows_sent: 100 Rows_examined: 10000
# Full scan: YES Query_cache_hit: NO
# Query:
SELECT * FROM large_table WHERE column1 = 'value' AND column2 = 'another_value';
# Time: 2025-05-01T08:30:01.000000Z
# User@Host: root[root] @ localhost []
# Query_time: 1.234567 Lock_time: 0.000100 Rows_sent: 10 Rows_examined: 1000
# Full scan: NO Query_cache_hit: YES
# Query:
SELECT id, name FROM users WHERE status = 'active';
ログの各項目の解説
項目 | 説明 |
---|---|
Time | クエリが実行された日時。例:2025-05-01T08:27:43.000000Z
|
User@Host | クエリを実行したユーザーとホスト。例:root[root] @ localhost []
|
Query_time | クエリが実行されるのにかかった時間(秒単位)。例:3.123456
|
Lock_time | クエリがロックを取得するのにかかった時間。例:0.000234
|
Rows_sent | クエリが返した行数。例:100
|
Rows_examined | クエリが調べた行数。例:10000
|
Full scan | フルテーブルスキャンが行われたかどうか。例:YES
|
Query_cache_hit | クエリキャッシュがヒットしたかどうか。例:NO
|
Query | 実行されたSQLクエリそのもの。例:SELECT * FROM large_table...
|
このスクラップは4ヶ月前にクローズされました