文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  Performance Schema 等待事件表格

29.12.4 Performance Schema 等待事件表格

Performance Schema 會檢測花費時間的事件,即等待。在事件階層中,等待事件會巢狀於階段事件內,而階段事件會巢狀於陳述式事件內,陳述式事件則會巢狀於交易事件內。

這些表格會儲存等待事件

下列章節將描述等待事件表格。也有彙總等待事件相關資訊的摘要表格;請參閱章節 29.12.20.1,「等待事件摘要表格」

如需這三個等待事件表格之間關係的詳細資訊,請參閱章節 29.9,「Performance Schema 目前與歷史事件表格」

設定等待事件收集

若要控制是否收集等待事件,請設定相關儀器和消費者的狀態

  • setup_instruments 表格包含名稱開頭為 wait 的儀器。使用這些儀器來啟用或停用個別等待事件類別的收集。

  • setup_consumers 表格包含的消費者值名稱與目前和歷史等待事件表格名稱對應。使用這些消費者來篩選等待事件的收集。

預設會啟用某些等待儀器,其他則會停用。例如

mysql> SELECT NAME, ENABLED, TIMED
       FROM performance_schema.setup_instruments
       WHERE NAME LIKE 'wait/io/file/innodb%';
+-------------------------------------------------+---------+-------+
| NAME                                            | ENABLED | TIMED |
+-------------------------------------------------+---------+-------+
| wait/io/file/innodb/innodb_tablespace_open_file | YES     | YES   |
| wait/io/file/innodb/innodb_data_file            | YES     | YES   |
| wait/io/file/innodb/innodb_log_file             | YES     | YES   |
| wait/io/file/innodb/innodb_temp_file            | YES     | YES   |
| wait/io/file/innodb/innodb_arch_file            | YES     | YES   |
| wait/io/file/innodb/innodb_clone_file           | YES     | YES   |
+-------------------------------------------------+---------+-------+
mysql> SELECT NAME, ENABLED, TIMED
       FROM performance_schema.setup_instruments
       WHERE NAME LIKE 'wait/io/socket/%';
+----------------------------------------+---------+-------+
| NAME                                   | ENABLED | TIMED |
+----------------------------------------+---------+-------+
| wait/io/socket/sql/server_tcpip_socket | NO      | NO    |
| wait/io/socket/sql/server_unix_socket  | NO      | NO    |
| wait/io/socket/sql/client_connection   | NO      | NO    |
+----------------------------------------+---------+-------+

預設會停用等待消費者

mysql> SELECT *
       FROM performance_schema.setup_consumers
       WHERE NAME LIKE 'events_waits%';
+---------------------------+---------+
| NAME                      | ENABLED |
+---------------------------+---------+
| events_waits_current      | NO      |
| events_waits_history      | NO      |
| events_waits_history_long | NO      |
+---------------------------+---------+

若要在伺服器啟動時控制等待事件收集,請在您的 my.cnf 檔案中使用如下的行

  • 啟用

    [mysqld]
    performance-schema-instrument='wait/%=ON'
    performance-schema-consumer-events-waits-current=ON
    performance-schema-consumer-events-waits-history=ON
    performance-schema-consumer-events-waits-history-long=ON
  • 停用

    [mysqld]
    performance-schema-instrument='wait/%=OFF'
    performance-schema-consumer-events-waits-current=OFF
    performance-schema-consumer-events-waits-history=OFF
    performance-schema-consumer-events-waits-history-long=OFF

若要在執行階段控制等待事件收集,請更新 setup_instrumentssetup_consumers 表格

  • 啟用

    UPDATE performance_schema.setup_instruments
    SET ENABLED = 'YES', TIMED = 'YES'
    WHERE NAME LIKE 'wait/%';
    
    UPDATE performance_schema.setup_consumers
    SET ENABLED = 'YES'
    WHERE NAME LIKE 'events_waits%';
  • 停用

    UPDATE performance_schema.setup_instruments
    SET ENABLED = 'NO', TIMED = 'NO'
    WHERE NAME LIKE 'wait/%';
    
    UPDATE performance_schema.setup_consumers
    SET ENABLED = 'NO'
    WHERE NAME LIKE 'events_waits%';

若要只收集特定等待事件,請只啟用對應的等待儀器。若要只為特定等待事件表格收集等待事件,請啟用等待儀器,但只啟用與所需表格對應的等待消費者。

如需有關設定事件收集的其他資訊,請參閱章節 29.3,「Performance Schema 啟動組態」,以及章節 29.4,「Performance Schema 執行階段組態」