Spec-Zone.ru › MySQL 8.4

17.16 Интеграция InnoDB с MySQL Performance Schema

  • 17.16.1 Мониторинг прогресса ALTER TABLE для таблиц InnoDB с помощью Performance Schema
  • 17.16.2 Мониторинг ожиданий блокировок InnoDB с помощью Performance Schema

В данном разделе представлено краткое введение в интеграцию с Performance Schema. Для получения исчерпывающей документации по Performance Schema см. Главу 29, MySQL Performance Schema.

Вы можете профилировать определенные внутренние InnoDB операции с помощью функции MySQL Performance Schema. Этот тип настройки в первую очередь предназначен для опытных пользователей, которые оценивают стратегии оптимизации, чтобы преодолеть узкие места производительности. Администрирующие MySQL базы данных также могут использовать эту функцию для планирования ресурсов, чтобы определить, сталкивается ли их типичная рабочая нагрузка с узкими местами производительности в определенной комбинации процессора, оперативной памяти и дискового хранилища; и если да, то можно ли улучшить производительность путем увеличения емкости какой-либо части системы.

Чтобы использовать эту функцию для изучения производительности InnoDB:

  • Вы должны быть знакомы с тем, как использовать функцию Performance Schema. Например, вам следует знать, как включить инструменты и потребители, и как запросить performance_schema таблицы для извлечения данных. Для ознакомительного обзора см. Раздел 29.1, “Performance Schema Quick Start”.

  • Вы должны быть знакомы с инструментами Performance Schema, доступными для InnoDB. Чтобы просмотреть инструменты, связанные с InnoDB, вы можете запросить таблицу setup_instruments в поисках имен инструментов, содержащих 'innodb'.

    mysql> SELECT *
           FROM performance_schema.setup_instruments
           WHERE NAME LIKE '%innodb%';
    +-------------------------------------------------------+---------+-------+
    | NAME                                                  | ENABLED | TIMED |
    +-------------------------------------------------------+---------+-------+
    | wait/synch/mutex/innodb/commit_cond_mutex             | NO      | NO    |
    | wait/synch/mutex/innodb/innobase_share_mutex          | NO      | NO    |
    | wait/synch/mutex/innodb/autoinc_mutex                 | NO      | NO    |
    | wait/synch/mutex/innodb/buf_pool_mutex                | NO      | NO    |
    | wait/synch/mutex/innodb/buf_pool_zip_mutex            | NO      | NO    |
    | wait/synch/mutex/innodb/cache_last_read_mutex         | NO      | NO    |
    | wait/synch/mutex/innodb/dict_foreign_err_mutex        | NO      | NO    |
    | wait/synch/mutex/innodb/dict_sys_mutex                | NO      | NO    |
    | wait/synch/mutex/innodb/recalc_pool_mutex             | NO      | NO    |
    ...
    | 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   |
    | stage/innodb/alter table (end)                        | YES     | YES   |
    | stage/innodb/alter table (flush)                      | YES     | YES   |
    | stage/innodb/alter table (insert)                     | YES     | YES   |
    | stage/innodb/alter table (log apply index)            | YES     | YES   |
    | stage/innodb/alter table (log apply table)            | YES     | YES   |
    | stage/innodb/alter table (merge sort)                 | YES     | YES   |
    | stage/innodb/alter table (read PK and internal sort)  | YES     | YES   |
    | stage/innodb/buffer pool load                         | YES     | YES   |
    | memory/innodb/buf_buf_pool                            | NO      | NO    |
    | memory/innodb/dict_stats_bg_recalc_pool_t             | NO      | NO    |
    | memory/innodb/dict_stats_index_map_t                  | NO      | NO    |
    | memory/innodb/dict_stats_n_diff_on_level              | NO      | NO    |
    | memory/innodb/other                                   | NO      | NO    |
    | memory/innodb/row_log_buf                             | NO      | NO    |
    | memory/innodb/row_merge_sort                          | NO      | NO    |
    | memory/innodb/std                                     | NO      | NO    |
    | memory/innodb/sync_debug_latches                      | NO      | NO    |
    | memory/innodb/trx_sys_t::rw_trx_ids                   | NO      | NO    |
    ...
    +-------------------------------------------------------+---------+-------+
    155 rows in set (0.00 sec)
    

    Для получения дополнительной информации об инструментированных InnoDB объектах вы можете запросить таблицы экземпляров Performance Schema экземпляров таблиц, которые предоставляют дополнительную информацию об инструментированных объектах. Таблицы экземпляров, относящиеся к InnoDB, включают:

    • Таблицу mutex_instances

    • Таблицу rwlock_instances

    • Таблицу cond_instances

    • Таблицу file_instances

    Примечание

    Блокировки и блокировки RW, относящиеся к буферному пулу InnoDB, не включены в этот охват; то же относится к выводу оператора SHOW ENGINE INNODB MUTEX.

    Например, чтобы просмотреть информацию об инструментированных объектах файлов InnoDB, которые видит Performance Schema при выполнении инструментации операций с файлами ввода/вывода, вы можете выполнить следующий запрос:

    mysql> SELECT *
           FROM performance_schema.file_instances
           WHERE EVENT_NAME LIKE '%innodb%'\G
    *************************** 1. row ***************************
     FILE_NAME: /home/dtprice/mysql-8.4/data/ibdata1
    EVENT_NAME: wait/io/file/innodb/innodb_data_file
    OPEN_COUNT: 3
    *************************** 2. row ***************************
     FILE_NAME: /home/dtprice/mysql-8.4/data/#ib_16384_0.dblwr
    EVENT_NAME: wait/io/file/innodb/innodb_dblwr_file
    OPEN_COUNT: 2
    *************************** 3. row ***************************
     FILE_NAME: /home/dtprice/mysql-8.4/data/#ib_16384_1.dblwr
    EVENT_NAME: wait/io/file/mysql-8.4/innodb_dblwr_file
    OPEN_COUNT: 2
    ...
    
  • Вы должны быть знакомы с performance_schema таблицами, которые хранят данные событий InnoDB. Таблицы, относящиеся к событиям, связанным с InnoDB, включают:

    • Таблицы событий ожидания, которые хранят события ожидания.

    • Таблицы обобщения, которые предоставляют агрегированную информацию о завершенных событиях за определенный период. К таблицам обобщения относятся таблицы сводки операций ввода/вывода с файлами, которые агрегируют информацию об операциях ввода/вывода.

    • Таблицы событий этапов, которые хранят данные событий для операций загрузки InnoDB и буферного пула. Для получения дополнительной информации см. Раздел 17.16.1, “Мониторинг прогресса ALTER TABLE для таблиц InnoDB с помощью Performance Schema” и Мониторинг прогресса загрузки буферного пула с помощью Performance Schema.

    Если вы интересуетесь только объектами, связанными с InnoDB, используйте условие WHERE EVENT_NAME LIKE '%innodb%' или WHERE NAME LIKE '%innodb%' (по мере необходимости) при запросе этих таблиц.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/innodb-performance-schema.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API