スロークエリを確認
改めて、スロークエリを確認してみます。
- 先のループ処理は 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;
コンソールから確認
- RDSコンソールからmysqlコマンドでの接続先Auroraクラスターの DB を選択し、「ログとイベント」タブを開きます。
- 下部に「ログ」があるので、検索窓に「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 にログを出力するようにしています。これを用いて確認してみましょう。
- AWSコンソールのサービスから、「Cloudwatch」を開きます。
- 左メニューの「ロググループ」から、
/aws/rds/cluster/<your-cluster-name>/slowquery
というグループを探し開きます。
- ログストリーム が1つあるので、それを開きます。
- ログとして先ほどと同じ内容が記録されています。