Spec-Zone.ru › MySQL 9.2

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

  • 17.16.1 Мониторинг прогресса ALTER TABLE для таблиц InnoDB с помощью Performance Schema
  • 17.16.2 Мониторинг ожиданий InnoDB Mutex с помощью 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_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-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, включают:

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

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

    • Таблицы событий стадии, которые хранят данные событий для операций загрузки буфера пула и InnoDB ALTER 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.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/innodb-performance-schema.html

Spec-Zone.ru

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