このトピックでは、ApsaraDB RDS for MySQL のスロークエリログの詳細を表示する方法について説明します。また、SQL のログ記録条件、ステートメントの切り捨て、時刻の不一致、およびログ件数の差異に関するよくある質問 (FAQ) に回答します。
概要
ApsaraDB RDS for MySQL インスタンスでは、スロークエリログ機能はデフォルトで有効になっています。詳細については、「Collection policy for the slow query logs of ApsaraDB RDS for MySQL」をご参照ください。その他の種類のログを表示するには、「View error logs and slow query logs」をご参照ください。
注意事項
インスタンスが 1 分以内に 600 件を超えるスロークエリログエントリを生成した場合、一部のログエントリが失われることがあります。この問題は、マイナーエンジンバージョンを 20191212 以降にアップグレードすることで軽減できます。
SQL ステートメントが 8,192 バイトを超える場合、スロークエリログはステートメントを切り捨てます。
[スローログ分析] ページでのログのクエリ
- RDSインスタンスにアクセスし、上部のリージョンを選択し、対象のRDSインスタンスのIDをクリックします。
左側メニューで、自律型サービス > 低速 SQL を選択します。
[スローログ分析] タブで、時間範囲を選択します。コンソールに、その範囲のスロークエリログの統計と詳細が表示されます。
スロークエリログ統計の平均実行時間は秒単位で測定されます。一方、フル SQL 統計の平均レイテンシはミリ秒単位で測定されます。これら 2 つのモジュールは時間の粒度が異なり、対応する API も異なります。スロークエリログ統計は
DescribeSlowLogsAPI に対応し、戻り値は秒単位です。フル SQL 統計はDescribeSQLLogReportListAPI に対応し、戻り値はミリ秒単位です。説明また、インスタンスの [Logs] ページに移動し、[Slow Log Details] タブをクリックして、スロークエリログの詳細を表示することもできます。
重要スロークエリログの詳細には、SQL ステートメント、アクセス元、データベース、実行時間などの情報が含まれます。[User] フィールドには、SQL ステートメントを実行したデータベースアカウントの名前が表示されます。これは、Alibaba Cloud 管理コンソールにログインする際に使用する RAM ユーザーではありません。[User] フィールドは、Database Autonomy Service (DAS) の左側メニューで 自律型サービス > 低速 SQL > [Slow Log Details] を選択した場合にのみ利用できます。[Logs] ページの [Slow Log Details] タブには、このフィールドは含まれません。スロークエリログのタイムスタンプは、マイナーエンジンバージョン 20211231 (MySQL 5.7.35)、20220530 (MySQL 8.0.25) 以降では SQL 実行の開始時刻を示します。これより前のバージョンでは、タイムスタンプは SQL 実行の終了時刻を示します。
スロークエリログの詳細をエクスポートするには、「スローログ分析」をご参照ください。