14.17 Интеграция InnoDB с MySQL 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_instrumentsWHERE 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_instancesWHERE 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, относятся:Таблицы Ожидания, которые хранят события ожидания.
Таблицы Сводные, которые предоставляют агрегированную информацию для завершенных событий со временем. К сводным таблицам относятся сводные таблицы файлового ввода/вывода, которые агрегируют информацию об операциях ввода/вывода.
Таблицы Этапа событий, которые хранят данные о событиях для
InnoDBALTER 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.