ablog

不器用で落着きのない技術者のメモ

Aurora MySQL互換でスロークエリログを取得する

Aurora MySQL 5.7互換で、スロークエリログを CloudWatch Logs に出力してみた。

設定

  • DB Parameter Group をパラメータグループファミリー"aurora-mysql5.7" で作成する
    • slow_query_log=1
    • long_query_time=0 # 全てのクエリーを出力する
  • DBインスタンスの DB Parameter Group を作成したものに変えて再起動する。

スロークエリログを見てみる

5.7.12-log awsuser: [mysql] 17:58> select count(*) from (select a.* from time_zone_name a, time_zone_name b, time_zone_name c) d;
+------------+
| count(*)   |
+------------+
| 5526456832 |
+------------+
1 row in set (5 min 2.16 sec)
  • AWSマネジメントコンソールでDBインスタンスを選択して、[CloudWatch ログ]で[スロークエリ]をクリックする。
  • 「time_zone_name」でフィルタする。
# Time: 2018-10-24T09:03:34.076987Z
# User@Host: awsuser[awsuser] @ [**.*.*.145] Id: 26
# Query_time: 302.087264 Lock_time: 0.000229 Rows_sent: 1 Rows_examined: 88400
use mysql;
SET timestamp=1540371814;
select count(*) from (select a.* from time_zone_name a, time_zone_name b, time_zone_name c) d;