すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:Performance Insight

最終更新日:May 13, 2026

Performance Insight は、インスタンス負荷のモニタリング、相関分析、パフォーマンスチューニングのための強力なツールです。データベース負荷を迅速に評価し、パフォーマンスの問題の根本原因を特定し、データベースの安定性を向上させるのに役立ちます。

前提条件

ApsaraDB RDS for MySQL インスタンスは MySQL 8.4、8.0、または 5.7 を実行している必要があり、マイナーエンジンバージョンは 20190915 以降である必要があります。

説明

マイナーエンジンバージョンは、[基本情報] ページで確認できます。[設定情報] セクションで、[カーネルバージョンのアップグレード] ボタンが表示されるかどうかを確認してください。このボタンが表示されている場合は、クリックして現在のバージョンを表示します。表示されていない場合は、インスタンスはすでに最新バージョンを実行しています。詳細については、「マイナーエンジンバージョンのアップグレード」をご参照ください。

Performance Insight

Performance Insight は、2 つのコンポーネントで構成されています。

  • オブジェクト統計

    オブジェクト統計は、テーブルとインデックスに関する統計を提供します。これには、次の 2 つのテーブルが含まれます。

    • TABLE_STATISTICS:読み取り行数と変更された行数を記録します。

    • INDEX_STATISTICS:インデックスによって読み取られた行数を記録します。

  • パフォーマンスポイント

    パフォーマンスポイントは、インスタンスの詳細なパフォーマンス情報を提供し、SQL ステートメントのコストをより迅速かつ正確に定量化するのに役立ちます。これには、次の 3 つのディメンションが含まれます。

    • CPU:合計実行時間 (経過時間) や CPU 時間などのメトリクスが含まれます。

    • LOCK:サーバーメタデータロック (MDL) 時間、トランザクションロック時間、ミューテックス競合 (デバッグモードのみ) 、読み取り/書き込みロックの競合などのメトリクスが含まれます。

    • IO:データファイルの読み取り/書き込み時間、ログファイルの書き込み時間、論理読み取り、物理読み取り、物理非同期読み取りなどのメトリクスが含まれます。

オブジェクト統計の使用

  1. パラメーター OPT_TABLESTATOPT_INDEXSTATON に設定されていることを確認してください。例:

    mysql> show variables like "opt_%_stat";
      +---------------+-------+
      | Variable_name | Value |
      +---------------+-------+
      | opt_indexstat | ON    |
      | opt_tablestat | ON    |
      +---------------+-------+
  2. information_schema データベースの TABLE_STATISTICS または INDEX_STATISTICS テーブルをクエリして、テーブルとインデックスの統計を表示します。例:

    mysql> select * from TABLE_STATISTICS limit 10;
      +--------------+--------------+-----------+--------------+------------------------+---------------+--------------+--------------+
      | TABLE_SCHEMA | TABLE_NAME   | ROWS_READ | ROWS_CHANGED | ROWS_CHANGED_X_INDEXES | ROWS_INSERTED | ROWS_DELETED | ROWS_UPDATED |
      +--------------+--------------+-----------+--------------+------------------------+---------------+--------------+--------------+
      | mysql        | db           |         2 |            0 |                      0 |             0 |            0 |            0 |
      | mysql        | engine_cost  |         2 |            0 |                      0 |             0 |            0 |            0 |
      | mysql        | proxies_priv |         1 |            0 |                      0 |             0 |            0 |            0 |
      | mysql        | server_cost  |         6 |            0 |                      0 |             0 |            0 |            0 |
      | mysql        | tables_priv  |         2 |            0 |                      0 |             0 |            0 |            0 |
      | mysql        | user         |         7 |            0 |                      0 |             0 |            0 |            0 |
      | test         | sbtest1      |      1686 |          142 |                    184 |           112 |           12 |           18 |
      | test         | sbtest10     |      1806 |          125 |                    150 |           105 |            5 |           15 |
      | test         | sbtest100    |      1623 |          141 |                    182 |           110 |           10 |           21 |
      | test         | sbtest11     |      1254 |          136 |                    172 |           110 |           10 |           16 |
      +--------------+--------------+-----------+--------------+------------------------+---------------+--------------+--------------+
    
      mysql> select * from INDEX_STATISTICS limit 10;
      +--------------+--------------+------------+-----------+
      | TABLE_SCHEMA | TABLE_NAME   | INDEX_NAME | ROWS_READ |
      +--------------+--------------+------------+-----------+
      | mysql        | db           | PRIMARY    |         2 |
      | mysql        | engine_cost  | PRIMARY    |         2 |
      | mysql        | proxies_priv | PRIMARY    |         1 |
      | mysql        | server_cost  | PRIMARY    |         6 |
      | mysql        | tables_priv  | PRIMARY    |         2 |
      | mysql        | user         | PRIMARY    |         7 |
      | test         | sbtest1      | PRIMARY    |      2500 |
      | test         | sbtest10     | PRIMARY    |      3007 |
      | test         | sbtest100    | PRIMARY    |      2642 |
      | test         | sbtest11     |      2091 |
      +--------------+--------------+------------+-----------+

    次の表にパラメーターを示します。

    パラメーター

    説明

    TABLE_SCHEMA

    データベースの名前。

    TABLE_NAME

    テーブルの名前。

    ROWS_READ

    読み取り行数。

    ROWS_CHANGED

    変更された行数。

    ROWS_CHANGED_X_INDEXES

    行の変更に起因するインデックス更新の数。

    ROWS_INSERTED

    挿入された行数。

    ROWS_DELETED

    削除された行数。

    ROWS_UPDATED

    更新された行数。

    INDEX_NAME

    インデックスの名前。

パフォーマンスポイントの使用

  1. パフォーマンスポイントのパラメーターを確認してください。次の出力は、この機能が有効になっていることを示します。

    mysql> show variables like "%performance_point%";
      +---------------------------------------+-------+
      | Variable_name                         | Value |
      +---------------------------------------+-------+
      | performance_point_dbug_enabled        | OFF   |
      | performance_point_enabled             | ON    |
      | performance_point_iostat_interval     | 2     |
      | performance_point_iostat_volume_size  | 10000 |
      | performance_point_lock_rwlock_enabled | ON    |
      +---------------------------------------+-------+
    説明

    これらの変数が見つからない場合は、インスタンスが前提条件を満たしていることを確認してください。

  2. performance_schema データベースの events_statements_summary_by_digest_supplement テーブルをクエリして、SQL ステートメントの統計を表示します。例:

    mysql> select * from events_statements_summary_by_digest_supplement limit 10;
      +--------------------+----------------------------------+-------------------------------------------+--------------+
      | SCHEMA_NAME        | DIGEST                           | DIGEST_TEXT                               | ELAPSED_TIME | ......
      +--------------------+----------------------------------+-------------------------------------------+--------------+
      | NULL               | 6b787dd1f9c6f6c5033120760a1a82de | SELECT @@`version_comment` LIMIT ?        |          932 |
      | NULL               | 2fb4341654df6995113d998c52e5abc9 | SHOW SCHEMAS                              |         2363 |
      | NULL               | 8a93e76a7846384621567fb4daa1bf95 | SHOW VARIABLES LIKE ?                     |        17933 |
      | NULL               | dd148234ac7a20cb5aee7720fb44b7ea | SELECT SCHEMA ( )                         |         1006 |
      | information_schema | 2fb4341654df6995113d998c52e5abc9 | SHOW SCHEMAS                              |         2156 |
      | information_schema | 74af182f3a2bd265678d3dadb53e08da | SHOW TABLES                               |         3161 |
      | information_schema | d3a66515192fcb100aaef6f8b6e45603 | SELECT * FROM `TABLE_STATISTICS` LIMIT ?  |         2081 |
      | information_schema | b3726b7c4c4db4b309de2dbc45ff52af | SELECT * FROM `INDEX_STATISTICS` LIMIT ?  |         2384 |
      | information_schema | dd148234ac7a20cb5aee7720fb44b7ea | SELECT SCHEMA ( )                         |          129 |
      | test               | 2fb4341654df6995113d998c52e5abc9 | SHOW SCHEMAS                              |          342 |
      +--------------------+----------------------------------+-------------------------------------------+--------------+

    次の表にパラメーターを示します。

    パラメーター

    説明

    SCHEMA_NAME

    データベースの名前。

    DIGEST

    [DIGEST_TEXT] の値から派生した 64 文字のハッシュ文字列。

    DIGEST_TEXT

    SQL ステートメントの正規化された形式。

    ELAPSED_TIME

    合計実行時間 (単位:マイクロ秒 (μs))。

    CPU_TIME

    CPU 時間 (単位:マイクロ秒 (μs))。

    SERVER_LOCK_TIME

    サーバーロック時間 (単位:マイクロ秒 (μs))。

    TRANSACTION_LOCK_TIME

    トランザクションロック時間 (単位:マイクロ秒 (μs))。

    MUTEX_SPINS

    ミューテックススピンの数。

    MUTEX_WAITS

    ミューテックス待機の数。

    RWLOCK_SPIN_WAITS

    読み取り/書き込みロックのスピン待機の数。

    RWLOCK_SPIN_ROUNDS

    読み取り/書き込みロックのスピンラウンド数。

    RWLOCK_OS_WAITS

    読み取り/書き込みロックのオペレーティングシステム待機の数。

    DATA_READS

    データファイルからの読み取り数。

    DATA_READ_TIME

    データファイルからの読み取りに費やされた時間 (単位:マイクロ秒 (μs))。

    DATA_WRITES

    データファイルへの書き込み数。

    DATA_WRITE_TIME

    データファイルへの書き込みに費やされた時間 (単位:マイクロ秒 (μs))。

    REDO_WRITES

    ログファイルへの書き込み数。

    REDO_WRITE_TIME

    ログファイルへの書き込みに費やされた時間 (単位:マイクロ秒 (μs))。

    LOGICAL_READS

    論理ページ読み取り数。

    PHYSICAL_READS

    物理ページ読み取り数。

    PHYSICAL_ASYNC_READS

    物理非同期ページ読み取り数。

  3. information_schema データベースの IO_STATISTICS テーブルをクエリして、最近のデータの読み取りおよび書き込みアクティビティを表示します。例:

    mysql> select * from IO_STATISTICS limit 10;
      +---------------------+-----------+----------------+
      | TIME                | DATA_READ | DATA_READ_TIME | ......
      +---------------------+-----------+----------------+
      | 2019-08-08 09:56:53 |        73 |            983 |
      | 2019-08-08 09:56:57 |         0 |              0 |
      | 2019-08-08 09:59:17 |         0 |              0 |
      | 2019-08-08 10:00:55 |      4072 |          40628 |
      | 2019-08-08 10:00:59 |         0 |              0 |
      | 2019-08-08 10:01:09 |       562 |           5800 |
      | 2019-08-08 10:01:11 |       606 |           6910 |
      | 2019-08-08 10:01:13 |       609 |           6875 |
      | 2019-08-08 10:01:15 |       625 |           7077 |
      | 2019-08-08 10:01:17 |       616 |           5800 |
      +---------------------+-----------+----------------+

    次の表にパラメーターを示します。

    パラメーター

    説明

    TIME

    レコードのタイムスタンプ。

    DATA_READ

    データ読み取り操作の数。

    DATA_READ_TIME

    データの読み取りに費やされた合計時間 (単位:マイクロ秒 (μs))。

    DATA_READ_MAX_TIME

    1 回のデータ読み取り操作に費やされた最大時間 (単位:マイクロ秒 (μs))。

    DATA_READ_BYTES

    読み取られたデータの合計サイズ (単位:バイト)。

    DATA_WRITE

    データ書き込み操作の数。

    DATA_WRITE_TIME

    データの書き込みに費やされた合計時間 (単位:マイクロ秒 (μs))。

    DATA_WRITE_MAX_TIME

    1 回のデータ書き込み操作に費やされた最大時間 (単位:マイクロ秒 (μs))。

    DATA_WRITE_BYTES

    書き込まれたデータの合計サイズ (単位:バイト)。