コマンド
pt-query-digest [ オプション ] [ ファイル名 ] [ DSN ]
【主なオプション】
- ・ –type : どのログを読ませるか。デフォルトは slowlog です。他には binlog や tcpdump 等があります
- ・ –group-by : SQLのものと同じです
- ・ –limit : SQLのものと同じです
目的
Slowクエリログの集計結果を表示します
シナリオ
Slowクエリログは、デフォルトでは10秒以上のクエリが記録されるようになっていますが、my.cnf を0秒以上で記録するように変更し、いくつかクエリを実行します
my.cnf に追記
long_query_time = 0
記録されたSlowクエリログを pt-query-digest に読み込ませます
結果
実行すると、以下のように標準出力されます
①Slowクエリの統計情報を見ることができます
②Slowクエリのプロファイル情報を見ることができます
ここでは、1つ目のクエリが大きくレスポンスに時間がかかっていることが分かります
以降は、各クエリごとの統計情報を見ることができます
# Query 1: 0.00 QPS, 0.01x concurrency, ID 0x1A7D93EB17B6A968 at byte 4429
# This item is included in the report because it matches --limit.
# Scores: V/M = 2.25
# Time range: 2017-04-04 10:51:33 to 13:40:11
# Attribute pct total min max avg 95% stddev median
# ============ === ======= ======= ======= ======= ======= ======= =======
# Count 66 6
# Exec time 66 120s 10s 29s 20s 27s 7s 24s
# Lock time 80 1ms 107us 814us 233us 799us 255us 125us
# Rows sent 0 0 0 0 0 0 0 0
# Rows examine 0 0 0 0 0 0 0 0
# Query size 69 408 68 68 68 68 0 68
# String:
# Databases test
# Hosts localhost
# Users root
# Query_time distribution
# 1us
# 10us
# 100us
# 1ms
# 10ms
# 100ms
# 1s
# 10s+ ################################################################
# Tables
# SHOW TABLE STATUS FROM `test` LIKE 'articles'\G
# SHOW CREATE TABLE `test`.`articles`\G
LOAD DATA LOCAL INFILE ""/tmp/19_01_articles.txt"" INTO TABLE articles\G
良い点
ユーザや接続元ごとの、時間帯指定による集計を行う事ができるので、Slowクエリログを分析するのに最適です