17.16 Интеграция InnoDB с MySQL 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_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/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: /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.