スロークエリを確認

改めて、スロークエリを確認してみます。

  • 先のループ処理は CTRL + C 中断(終了)させます
  • 再び、mysqlのコマンドでAuroraクラスタに接続し、対話プロンプトを表示します。
mysql -h ${DB_HOST} -p${DB_PASS} -uadmin wordpress

重いクエリを実行する

次のクエリを実行します。

select value, count(*) from data group by value;
  • キャッシュが有効で実行時間が1秒以下になった場合は、適当に重いクエリを実行してみてください
  • また、以下のように軽いクエリも実行して差を確認して下さい
select * from data where id = 100;

コンソールから確認

  1. RDSコンソールからmysqlコマンドでの接続先Auroraクラスターの DB を選択し、「ログとイベント」タブを開きます。
  2. 下部に「ログ」があるので、検索窓に「slow」と入力し、 slowquery/mysql-slowquery.logを選択し、「ビュー」をクリックします。
  • 次のような表示が確認できます。(場合によってはログが既にローテーションされて、「slowquery/mysql-slowquery.log-YYYY-MM-DD.HH」にあるかも知れません)
# Time: 2020-xx-yyT13:14:42.551538Z
# User@Host: admin[admin] @ [10.1.0.76] Id: 3086
# Query_time: 14.214187 Lock_time: 0.000107 Rows_sent: 9534 Rows_examined: 10019068
use wordpress;
SET timestamp=1604322882;
select value, count(*) from data group by value;
  • 今回は14秒かかったので、Query_time: 14.214187と表示されています
  • 一方、1秒かからないクエリは記録されていません。

CloudWatch Logs から確認

  • 毎回 RDSコンソール を開いて確認することもできますが、よりプログラマブルに確認することができます。
  • Auroraクラスター設定で Amazon CloudWatch Logs にログを出力するようにしています。これを用いて確認してみましょう。
  1. AWSコンソールのサービスから、「Cloudwatch」を開きます。
  2. 左メニューの「ロググループ」から、/aws/rds/cluster/<your-cluster-name>/slowqueryというグループを探し開きます。
  3. ログストリーム が1つあるので、それを開きます。
  4. ログとして先ほどと同じ内容が記録されています。