Spec-Zone.ru › MySQL 5.7

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

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

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

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

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

  • Вы должны быть в общих чертах знакомы с использованием функции Performance Schema. Например, вы должны знать, как включить инструменты и потребители, и как запросить performance_schema таблицы для извлечения данных. Для вводного обзора см. Раздел 25.1, «Быстрый старт Performance Schema».

  • Вы должны быть знакомы с инструментами 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/synch/mutex/innodb/file_format_max_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: /path/to/mysql-5.7/data/ibdata1
    EVENT_NAME: wait/io/file/innodb/innodb_data_file
    OPEN_COUNT: 3
    *************************** 2. row ***************************
     FILE_NAME: /path/to/mysql-5.7/data/ib_logfile0
    EVENT_NAME: wait/io/file/innodb/innodb_log_file
    OPEN_COUNT: 2
    *************************** 3. row ***************************
     FILE_NAME: /path/to/mysql-5.7/data/ib_logfile1
    EVENT_NAME: wait/io/file/innodb/innodb_log_file
    OPEN_COUNT: 2
    *************************** 4. row ***************************
     FILE_NAME: /path/to/mysql-5.7/data/mysql/engine_cost.ibd
    EVENT_NAME: wait/io/file/innodb/innodb_data_file
    OPEN_COUNT: 3
    ...
    
  • Вы должны быть знакомы с performance_schema таблицами, которые хранят данные о событиях InnoDB. К таблицам, относящимся к событиям, связанным с InnoDB, относятся:

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

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

    • Таблицы Этапа событий, которые хранят данные о событиях для InnoDB ALTER TABLE и загрузки буферного пула. Дополнительную информацию см. в Разделе 14.17.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-5.7-en/innodb-performance-schema.html

Spec-Zone.ru

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