17.16 Интеграция InnoDB с MySQL Performance Schema
В этом разделе представлено краткое введение в интеграцию с Performance Schema. Для получения подробной документации по Performance Schema см. Главу 29, MySQL Performance Schema.
Вы можете профилировать определенные внутренние операции с помощью функции MySQL Performance Schema. Этот тип настройки в основном предназначен для экспертных пользователей, которые оценивают стратегии оптимизации для преодоления узких мест производительности. Администраторы баз данных также могут использовать эту функцию для планирования емкости, чтобы увидеть, сталкивается ли их типичная рабочая нагрузка с какими-либо узкими местами производительности при определённой комбинации процессора, оперативной памяти и дискового хранилища; и если да, то можно ли улучшить производительность, увеличив ёмкость какой-либо части системы.
Для использования этой функции для анализа производительности:
Вы должны в общих чертах понимать, как использовать функцию Performance Schema. Например, вы должны знать, как включить инструменты и потребителей, и как запрашивать таблицы
performance_schemaдля получения данных. Введение можно найти в Разделе 29.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/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-9.2/data/ibdata1 EVENT_NAME: wait/io/file/innodb/innodb_data_file OPEN_COUNT: 3 *************************** 2. row *************************** FILE_NAME: /home/dtprice/mysql-9.2/data/#ib_16384_0.dblwr EVENT_NAME: wait/io/file/innodb/innodb_dblwr_file OPEN_COUNT: 2 *************************** 3. row *************************** FILE_NAME: /home/dtprice/mysql-9.2/data/#ib_16384_1.dblwr EVENT_NAME: wait/io/file/mysql-9.2/innodb_dblwr_file OPEN_COUNT: 2 ... -
Вы должны быть знакомы с таблицами
performance_schema, которые хранят данные событийInnoDB. Таблицы, относящиеся к событиям, связанным сInnoDB, включают:Таблицы событий ожидания ожидания, которые хранят события ожидания.
Таблицы обобщения, которые предоставляют агрегированную информацию для завершенных событий за определенный период. Таблицы обобщения включают таблицы обобщения ввода-вывода файлов, которые агрегируют информацию об операциях ввода-вывода.
Таблицы событий стадии, которые хранят данные событий для операций загрузки буфера пула и
InnoDBALTER TABLE. Дополнительную информацию можно найти в Разделе 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.