全部產品
Search
文件中心

ApsaraDB RDS:Performance Insight

更新時間:Jun 20, 2025

Performance Insight是專註於執行個體負載監控、關聯分析、效能調優的利器,協助您迅速評估資料庫負載,找到效能問題的源頭,提升資料庫的穩定性。

前提條件

RDS MySQL執行個體需為8.0或5.7版本,且核心小版本為20190915及以上。

說明

您可以在基本資料頁面的配置資訊地區查看是否有升級核心小版本按鈕。如果有按鈕,您可以單擊按鈕查看目前的版本;如果沒有按鈕,表示已經是最新版。詳情請參見升級核心小版本

Performance Insight介紹

Performance Insight由如下兩部分組成:

  • Object statistics

    Object statistics查詢表和索引的統計資訊,包括如下兩個表:

    • TABLE_STATISTICS:記錄讀取和修改的行。

    • INDEX_STATISTICS:記錄索引的讀取行。

  • Performance point

    Performance point提供執行個體的詳細效能資訊,方便您更快更準確地量化SQL的開銷。Performance point包括如下三個維度:

    • CPU:包括執行任務的總時間(Elapsed time)、CPU執行任務的時間(CPU time)等。

    • LOCK:包括伺服器MDL鎖時間、儲存事務鎖時間、互斥衝突(僅偵錯模式)、讀寫鎖衝突等。

    • IO:資料檔案讀寫時間、記錄檔寫入時間、邏輯讀取、物理讀取、物理非同步讀取等。

Object statistics使用方法

  1. 確認參數OPT_TABLESTATOPT_INDEXSTAT的值為ON。樣本如下:

    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     | PRIMARY    |      2091 |
      +--------------+--------------+------------+-----------+

    參數說明如下。

    參數

    說明

    TABLE_SCHEMA

    資料庫名稱。

    TABLE_NAME

    表名稱。

    ROWS_READ

    讀的行數。

    ROWS_CHANGED

    修改的行數。

    ROWS_CHANGED_X_INDEXES

    索引修改的行數。

    ROWS_INSERTED

    插入的行數。

    ROWS_DELETED

    刪除的行數。

    ROWS_UPDATED

    更新的行數。

    INDEX_NAME

    索引名稱。

Performance point使用方法

  1. 確認Performance point的相關參數。正常的樣本如下:

    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表,查看排名前10的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進行hash計算得到的64位元組的hash字串。

    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

    資料讀取最長時間。單位:μs。

    DATA_READ_BYTES

    資料讀取總大小。單位:byte。

    DATA_WRITE

    資料寫入次數。

    DATA_WRITE_TIME

    資料寫入總時間。單位:μs。

    DATA_WRITE_MAX_TIME

    資料寫入最長時間。單位:μs。

    DATA_WRITE_BYTES

    資料寫入總大小。單位:byte。