RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
YandexMoney: 
41001198119846 
E-gold:
5128052

Глава 24. MySQL sys Schema

MySQL 8.0 схему sys, ряд объектов, который помогает DBA и разработчикам, интерпретирует данные, собранные Performance Schema. sys объекты схемы могут использоваться для типичной настройки и случаев использования диагноза. Объекты в этой схеме включают:

  • Представления, которые суммируют данные Performance Schema в более понятную форму.

  • Хранимые процедуры, которые выполняют операции, такие как настройка Performance Schema и производство диагностических отчетов.
  • Сохраненные функции, которые запрашивают конфигурацию Performance Schema и оказывают услуги форматирования.

Для новых установок sys schema установлена по умолчанию во время инициализации каталога данных, если Вы используете mysqld с опцией --initialize или --initialize-insecure. Если это не желаемо, Вы можете удалить sys schema вручную после инициализации.

mysql_upgrade вернет ошибку, если sys schema существует, но не имеет представления version, при условии, что отсутствие этого представления указывает на создаваемую пользователем sys schema. Чтобы обновить в этом случае, удалите или переименуйте существующую sys schema.

Объекты sys schema имеют DEFINER 'mysql.sys'@'localhost'. Использование специализированного пользователя mysql.sys избегает проблем, которые происходят, если DBA переименовывает или удаляет учетную запись root.

24.1. Предпосылки для использования sys Schema

Перед использованием sys schema предпосылки, описанные в этом разделе, должны быть удовлетворены.

sys schema требует MySQL 5.6 или выше.

Поскольку sys schema обеспечивает альтернативное средство доступа к Performance Schema, то Performance Schema должна быть включена для работы sys schema. См. раздел 23.2.2 .

Для полного доступа к sys schema у пользователя должны быть эти привилегии:

  • SELECT на всех таблицах и представлениях sys.

  • EXECUTE на всех хранимых процедурах и функциях sys.
  • INSERT и UPDATE для таблицы sys_config, если изменения должны быть произведены.
  • Дополнительные привилегии для хранимых процедур и функций sys, как отмечено в их описаниях, например, процедуры ps_setup_save() .

Также необходимо иметь привилегии для объектов, лежащих в основе sys schema:

  • SELECT на любых таблицах Performance Schema, к которым получают доступ объекты sys и UPDATE для любых таблиц, которые будут обновлены, используя объекты sys schema.

  • PROCESS для таблицы INFORMATION_SCHEMA INNODB_BUFFER_PAGE .

Определенные инструменты и потребители Performance Schema должны быть включены и (для инструментов) рассчитаны, чтобы в полной мере воспользоваться возможностями sys schema:

  • Все wait инструменты.

  • Все stage инструменты.
  • Все statement инструменты.
  • xxx_current и xxx_history_long для всех событий.

Вы можете использовать sys schema непосредственно, чтобы включить все дополнительные инструменты и потребители:

CALL sys.ps_setup_enable_instrument('wait');
CALL sys.ps_setup_enable_instrument('stage');
CALL sys.ps_setup_enable_instrument('statement');
CALL sys.ps_setup_enable_consumer('current');
CALL sys.ps_setup_enable_consumer('history_long');

Для использования sys schema Performance Schema по умолчанию достаточна для сбора данных. Включение всех инструментов и потребителец оказывает исполнительное влияние, таким образом, предпочтительно включать только ту дополнительную конфигурацию, в которой Вы нуждаетесь. Кроме того, помните, что, если Вы включаете дополнительную конфигурацию, Вы можете легко восстановить конфигурацию по умолчанию:

CALL sys.ps_setup_reset_to_default(TRUE);

24.2. Применение sys Schema

Вы можете сделать sys schema схемой по умолчанию так, чтобы ссылки на ее объекты не были квалифицированы с именем схемы:

mysql> USE sys;
Database changed
mysql> SELECT * FROM version;
+-------------+---------------------+
| sys_version | mysql_version       |
+-------------+---------------------+
| 1.5.1       | 8.0.1-dmr-debug-log |
+-------------+---------------------+
Обзор version показывает версии sys schema и сервера MySQL.

Для доступа к объектам sys schema в то время как по умолчанию принята иная схема, надо квалифицировать объектные ссылки с именем схемы:

mysql> SELECT * FROM sys.version;
+-------------+---------------------+
| sys_version | mysql_version       |
+-------------+---------------------+
| 1.5.1       | 8.0.1-dmr-debug-log |
+-------------+---------------------+
Примеры в этой главе обычно принимают sys как схему по умолчанию.

sys содержит много представлений, которые суммируют таблицы Performance Schema различными способами. Большинство этих представлений прибывает в пары, где у одного члена пары есть то же самое имя, как у другого участника, плюс приставка x$. Например, обхор host_summary_by_file_io суммирует ввод/вывод файла, сгруппированный по хостам, и выводит на экран времена ожидания, преобразованные от пикосекунд в более читаемые значения (с модулями):

mysql> SELECT * FROM host_summary_by_file_io;
+------------+-------+------------+
| host       | ios   | io_latency |
+------------+-------+------------+
| localhost  | 67570 | 5.38 s     |
| background |  3468 | 4.18 s     |
+------------+-------+------------+
Представление x$host_summary_by_file_io суммирует те же самые данные, но выводит на экран неотформатированные времена ожидания в пикосекундах:
mysql> SELECT * FROM x$host_summary_by_file_io;
+------------+-------+---------------+
| host       | ios   | io_latency    |
+------------+-------+---------------+
| localhost  | 67574 | 5380678125144 |
| background |  3474 | 4758696829416 |
+------------+-------+---------------+
Представление без x$ предназначен, чтобы обеспечить вывод, который более удобен для пользователя. Представление с x$ выводит на экран те же самые значения в сырой форме и предназначено больше для использования с другими инструментами, которые выполняют их собственную обработку данных. Для дополнительной информации о различиях между не-x$ и x$ представлениях см. раздел 24.4.3.

Чтобы исследовать определение объекта в sys schema, используйте соответствующий запрос SHOW или INFORMATION_SCHEMA. Например, чтобы исследовать определения представления session и функции format_bytes(), используйте эти запросы:

mysql> SHOW CREATE VIEW session;
mysql> SHOW CREATE FUNCTION format_bytes;
Однако, те запросы выводят на экран определения в относительно неотформатированной форме. Чтобы рассмотреть определения объекта с большим количеством читаемого форматирования, получите доступ к индивидуальным файлам .sql, доступным на web-сайте для разработчиков sys schema https://github.com/mysql/mysql-sys.

mysqldump и mysqlpump не выводят sys schema по умолчанию. Чтобы произвести файл дампа, назовите sys schema явно на командной строке, используя любую из этих команд:

mysqldump --databases --routines sys > sys_dump.sql
mysqlpump sys > sys_dump.sql
Чтобы повторно установить схему из файла дампа, используйте эту команду:
mysql < sys_dump.sql

24.3. Сообщение продвижения sys Schema

Следующие представления sys schema обеспечивают продвижение, сообщающее для продолжительных транзакций:

processlist
session
x$processlist
x$session
Предполагая, что необходимые инструменты и потребители включены, столбец progress этих представлений показывает процент работы, завершенной для этапов по сообщениям поддержки продвижения.

Сообщение продвижения этапа требует, чтобы events_stages_current был включен, так же как инструменты, для которых желаема информация о продвижении. Инструменты для этих этапов в настоящее время поддерживают сообщение продвижения:

stage/sql/Copying to tmp table
stage/innodb/alter table (end)
stage/innodb/alter table (flush)
stage/innodb/alter table (insert)
stage/innodb/alter table (log apply index)
stage/innodb/alter table (log apply table)
stage/innodb/alter table (merge sort)
stage/innodb/alter table (read PK and internal sort)
stage/innodb/buffer pool load
Для этапов, которые не поддерживают оцененное и завершенное сообщение работы, или если необходимые инструменты или потребители не включены, столбец progress всегда NULL.

24.4. Объектная ссылка sys Schema

sys schema включает таблицы, триггеры, представления, хранимые процедуры и функции. Следующие разделы обеспечивают детали для каждого из этих объектов.

24.4.1. Индекс объектов sys Schema

Следующяя таблица дает список объектов sys schema и обеспечивает краткое описание каждого.

Таблица 24.1. Таблицы и триггеры sys Schema

Имя таблицы или триггера Описание
sys_config Параметры конфигурации sys schema
sys_config_insert_set_user Триггер insert sys_config
sys_config_update_set_user Триггер update sys_config

Таблица 24.2. Представления sys Schema

Имя представления Описание
host_summary, x$host_summary Деятельность запроса, файловый ввод/вывод и соединения, сгруппированные по хосту.
host_summary_by_file_io, x$host_summary_by_file_io Файловый ввод/вывод, сгруппированный по хосту.
host_summary_by_file_io_type, x$host_summary_by_file_io_type Файловый ввод/вывод, сгруппированный по хосту и типам событий.
host_summary_by_stages, x$host_summary_by_stages Этапы запроса, сгруппированные по хосту.
host_summary_by_statement_latency, x$host_summary_by_statement_latency Статистика запроса, сгруппированная по хосту.
host_summary_by_statement_type, x$host_summary_by_statement_type Выполненные запросы, сгруппированные по хосту и запросу.
innodb_buffer_stats_by_schema, x$innodb_buffer_stats_by_schema Буферная информация InnoDB , сгруппированная схемой.
innodb_buffer_stats_by_table, x$innodb_buffer_stats_by_table Буферная информация InnoDB, сгруппированная схемой и таблицей.
innodb_lock_waits, x$innodb_lock_waits Информация о блокировке InnoDB.
io_by_thread_by_latency, x$io_by_thread_by_latency Потребители ввода/вывода, сгруппированные потоком.
io_global_by_file_by_bytes, x$io_global_by_file_by_bytes Глобальные потребители ввода/вывода, сгруппированные файлом и байтами.
io_global_by_file_by_latency, x$io_global_by_file_by_latency Глобальные потребители ввода/вывода, сгруппированные файлом и временем ожидания.
io_global_by_wait_by_bytes, x$io_global_by_wait_by_bytes Глобальные потребители ввода/вывода, сгруппированные байтами.
io_global_by_wait_by_latency, x$io_global_by_wait_by_latency Глобальные потребители ввода/вывода, сгруппированные временем ожидания.
latest_file_io, x$latest_file_io Новый ввод/вывод, сгруппированный файлом и потоком.
memory_by_host_by_current_bytes, x$memory_by_host_by_current_bytes Использование памяти, сгруппированное хостом.
memory_by_thread_by_current_bytes, x$memory_by_thread_by_current_bytes Использование памяти, сгруппированное потоком.
memory_by_user_by_current_bytes, x$memory_by_user_by_current_bytes Использование памяти, сгруппированное пользователем.
memory_global_by_current_bytes, x$memory_global_by_current_bytes Использование памяти, сгруппированное типом распределения.
memory_global_total, x$memory_global_total Полное использование памяти.
metrics Метрики сервера.
processlist , x$processlist Информация о Processlist.
ps_check_lost_instrumentation Переменные, которые потеряли инструменты.
schema_auto_increment_columns Информация о столбце AUTO_INCREMENT.
schema_index_statistics, x$schema_index_statistics Статистика индекса.
schema_object_overview Типы объектов в пределах каждой схемы.
schema_redundant_indexes Индексы Duplicate или redundant.
schema_table_lock_waits, x$schema_table_lock_waits Сеансы, ждущие блокировок метаданных.
schema_table_statistics, x$schema_table_statistics Табличная статистика.
schema_table_statistics_with_buffer, x$schema_table_statistics_with_buffer Табличная статистика, включая буферную статистику бассейна InnoDB.
schema_tables_with_full_table_scans, x$schema_tables_with_full_table_scans Таблицы, получаемые доступом с полными просмотрами.
schema_unused_indexes Индексы не в активном использовании.
session, x$session Информация о Processlist для пользовательских сеансов.
session_ssl_status Информация о соединении SSL.
statement_analysis, x$statement_analysis Статистика совокупности запроса.
statements_with_errors_or_warnings, x$statements_with_errors_or_warnings Запросы, которые произвели ошибки или предупреждения.
statements_with_full_table_scans, x$statements_with_full_table_scans Запросы, которые сделали полное сканирование таблицы.
statements_with_runtimes_in_95th_percentile, x$statements_with_runtimes_in_95th_percentile Запросы с самым высоким средним временем выполнения.
statements_with_sorting, x$statements_with_sorting Запросы, которые выполнили сортировки.
statements_with_temp_tables, x$statements_with_temp_tables Запросы, которые использовали временные таблицы.
user_summary , x$user_summary Пользовательский запрос и деятельность соединения.
user_summary_by_file_io, x$user_summary_by_file_io Файловый ввод/вывод, сгруппированный пользователем.
user_summary_by_file_io_type, x$user_summary_by_file_io_type Файловый ввод/вывод, сгруппированный пользователем и событием.
user_summary_by_stages, x$user_summary_by_stages События этапа, сгруппированные пользователем.
user_summary_by_statement_latency, x$user_summary_by_statement_latency Статистика запросов, сгруппированная пользователем.
user_summary_by_statement_type, x$user_summary_by_statement_type Выполненные запросы, сгруппированные пользователем и запросом.
version Текущие версии sys schema и сервера MySQL.
wait_classes_global_by_avg_latency, x$wait_classes_global_by_avg_latency Среднее время ожидания класса, сгруппированное классом событий.
wait_classes_global_by_latency, x$wait_classes_global_by_latency Общее время ожидания класса, сгруппированное классом событий.
waits_by_host_by_latency, x$waits_by_host_by_latency Ждущие события, сгруппированные узлом и событием.
waits_by_user_by_latency, x$waits_by_user_by_latency Ждущие события, сгруппированные пользователем и событием.
waits_global_by_latency, x$waits_global_by_latency Ждущие события, сгруппированные и событием.
x$ps_digest_95th_percentile_by_avg_us Вспомогательное представление для 95%-ных представлений.
x$ps_digest_avg_latency_distribution Вспомогательное представление для 95%-ных представлений.
x$ps_schema_table_statistics_io Вспомогательное представление для представлений табличной статистики.
x$schema_flattened_keys Вспомогательное представление для schema_redundant_indexes.

Таблица 24.3. Хранимые процедуры sys Schema

Имя процедуры Описание
create_synonym_db() Создает синоним для схемы
diagnostics() Собирает системную диагностическую информацию
execute_prepared_stmt() Выполнит подготовленный запрос
ps_setup_disable_background_threads() Отключит фоновую инструментовку потока
ps_setup_disable_consumer() Отключит потребителей
ps_setup_disable_instrument() Отключит инструменты
ps_setup_disable_thread() Отключит инструментовку для потока
ps_setup_enable_background_threads() Включит фоновую инструментовку потока
ps_setup_enable_consumer() Включит потребителей
ps_setup_enable_instrument() Включит инструменты
ps_setup_enable_thread() Включит инструментовку для потока
ps_setup_reload_saved() Перезагрузит сохраненную конфигурацию Performance Schema
ps_setup_reset_to_default() Сбросит сохраненную конфигурацию Performance Schema
ps_setup_save() Сохранит конфигурацию Performance Schema
ps_setup_show_disabled() Выведет на экран отключенную конфигурацию Performance Schema
ps_setup_show_disabled_consumers() Выведет на экран отключенных потребителей Performance Schema
ps_setup_show_disabled_instruments() Выведет на экран отключенные инструменты Performance Schema
ps_setup_show_enabled() Выведет на экран включенную конфигурацию Performance Schema
ps_setup_show_enabled_consumers() Выведет на экран включенных потребителей Performance Schema
ps_setup_show_enabled_instruments() Выведет на экран включенные инструменты Performance Schema
ps_statement_avg_latency_histogram() Выведет на экран гистограмму времени ожидания запросов
ps_trace_statement_digest() Трассировка инструментов Performance Schema для обзора
ps_trace_thread() Дамп данных потоков Performance Schema
ps_truncate_all_tables() Усеченные сводные таблицы Performance Schema
statement_performance_analyzer() Сообщение о запросах, работающих на сервере
table_exists() Существует ли таблица

Таблица 24.4. Сохраненные функции sys Schema

Имя функции Описание
extract_schema_from_file_name() Извлекает имя схемы из имени пути к файлу
extract_table_from_file_name() Извлекает имя таблицы из имени пути к файлу
format_bytes() Конвертирует байтовое значение, чтобы оценить с модулями
format_path() Заменяет каталоги данных и временных файлов в пути с символическими значениями
format_statement() Усекает длинный запрос к фиксированной длине
format_time() Значение пикосекунд конвертируется, чтобы оценить с модулями
list_add() Добавляет элемент в список
list_drop() Удалить элемент из списка
ps_is_account_enabled() Проверить, включена ли инструментовка учетной записи
ps_is_consumer_enabled() Проверить, включен ли потребитель
ps_is_instrument_default_enabled() Проверить, включен ли инструмент
ps_is_instrument_default_timed() Проверить, рассчитан ли инструмент
ps_is_thread_instrumented() Проверить, инструментован ли поток
ps_thread_account() Возвратит учетную запись для ID потока
ps_thread_id() Возвратит ID потока для ID соединения
ps_thread_stack() Возвратит информацию о событии для ID потока
ps_thread_trx_info() Возвратит информацию о транзакции для ID потока
quote_identifier() Возвратит строку как заключенный в кавычки идентификатор
sys_get_config() Возвратит параметр конфигурации sys schema
version_major() Главный номер версии MySQL
version_minor() Младший номер версии MySQL
version_patch() Номер версии выпуска MySQL

24.4.2. Таблицы и триггеры sys Schema

Следующие разделы описывают таблицы и триггеры sys schema.

24.4.2.1. Таблица sys_config

Эта таблица содержит параметры конфигурации sys schema, одна строка на опцию. Изменения конфигурации, произведенные, обновляя эту таблицу, сохраняются через сеансы клиента и перезапуски сервера.

У таблицы sys_config есть эти столбцы:

  • variable

    Имя параметра конфигурации.

  • value

    Значение параметра конфигурации.

  • set_time

    timestamp новой модификации строки.

  • set_by

    Учетная запись, которая сделала новую модификацию строки. Значение NULL, если строка не была изменена, начиная с установки sys schema.

Чтобы минимизировать число прямых чтений таблицы sys_config, функции sys schema, которые используют значение этой табличной проверки на определяемую пользователем переменную с соответствующим именем, которое является определяемой пользователем переменной, имеющей то же самое имя плюс @sys.. Например, переменная, соответствующая опции diagnostics.include_raw, @sys.diagnostics.include_raw . Если определяемая пользователем переменная существует в текущем сеансе и не-NULL, функция использует свое значение в предпочтении к значению в таблице sys_config. Иначе функция читает и использует значение из таблицы. В последнем случае функция также устанавливает соответствующую определяемую пользователем переменную в табличное значение так, чтобы дальнейшие ссылки на параметр конфигурации в пределах того же самого сеанса использовали переменную и не должны были считать таблицу снова.

Например, опция statement_truncate_len управляет максимальной длиной запросов, возвращенных функциец format_statement(). Значение по умолчанию 64. Чтобы временно изменить значение на 32 для Вашего текущего сеанса, установите переменную @sys.statement_truncate_len:

mysql> SET @stmt = 'SELECT variable, value, set_time, set_by FROM
                       sys_config';
mysql> SELECT format_statement(@stmt);
+----------------------------------------------------------+
| format_statement(@stmt)                                  |
+----------------------------------------------------------+
| SELECT variable, value, set_time, set_by FROM sys_config |
+----------------------------------------------------------+

mysql> SET @sys.statement_truncate_len = 32;
mysql> SELECT format_statement(@stmt);
+-----------------------------------+
| format_statement(@stmt)           |
+-----------------------------------+
| SELECT variabl ... ROM sys_config |
+-----------------------------------+
Последующие запросы format_statement() в пределах сеанса продолжают использовать определяемое пользователем значение переменной (32), а не значение, сохраненное в таблице (64).

Чтобы прекратить использовать определяемую пользователем переменную и вернуться к использованию значения в таблице, установите переменную в NULL в пределах Вашего сеанса:

mysql> SET @sys.statement_truncate_len = NULL;
mysql> SELECT format_statement(@stmt);
+----------------------------------------------------------+
| format_statement(@stmt)                                  |
+----------------------------------------------------------+
| SELECT variable, value, set_time, set_by FROM sys_config |
+----------------------------------------------------------+
Альтернативно, закончите свой текущий сеанс (чтобы заставить определяемую пользователем переменную больше не существовать) и начните новый сеанс.

Обычные отношения, описанные между опциями в таблице in the sys_config и определяемые пользователем переменные могут эксплуатироваться, чтобы произвести временные изменения конфигурации, которые заканчиваются, когда Ваш сеанс заканчивается. Однако, если Вы установите определяемую пользователем переменную и затем впоследствии измените соответствующее табличное значение в пределах того же самого сеанса, то измененное табличное значение не будет использоваться в том сеансе, пока определяемая пользователем переменная существует со значением не NULL. Измененное табличное значение будет использоваться в других сеансах, которым не назначали определяемую пользователем переменную.

Следующий список описывает опции в таблице sys_config и соответствующие определяемые пользователем переменные:

  • diagnostics.allow_i_s_tables, @sys.diagnostics.allow_i_s_tables

    Если эта опция ON, процедуре diagnostics() разрешают выполнить сканирование таблицы INFORMATION_SCHEMA.TABLES. Это может быть долго, если есть много таблиц. Значение по умолчанию OFF.

  • diagnostics.include_raw, @sys.diagnostics.include_raw

    Если эта опция ON, процедура diagnostics() включает сырой вывод от запросов обзора metrics. Значение по умолчанию OFF.

  • ps_thread_trx_info.max_length, @sys.ps_thread_trx_info.max_length

    Максимальная длина для вывода JSON, произведенного функцией ps_thread_trx_info() . Значение по умолчанию 65535.

  • statement_performance_analyzer.limit, @sys.statement_performance_analyzer.limit

    Максимальное количество строк, чтобы возвратить для представлений, у которых нет никакого встроенного предела. Например, у представления statements_with_runtimes_in_95th_percentile есть встроенный предел в том смысле, что оно возвращает только запросы со средним временем выполнения в 95%. Значение по умолчанию 100.

  • statement_performance_analyzer.view, @sys.statement_performance_analyzer.view

    Пользовательский запрос или представление, которое будет использоваться процедурой statement_performance_analyzer() (которая самостоятельно вызвана diagnostics()). Если значение опции содержит пробел, оно интерпретируется как запрос. Иначе, это должно быть название существующего представления, которое запрашивает таблицу Performance Schema events_statements_summary_by_digest. Не может быть никакого предложения LIMIT в запросе или определение представления, если параметр конфигурации statement_performance_analyzer.limit больше 0. Значение по умолчанию NULL (никакое пользовательское представление не определено).

  • statement_truncate_len, @sys.statement_truncate_len

    Максимальная длина запросов, возвращенных функцией format_statement(). Более длинные запросы усечены к этой длине. Значение по умолчанию 64.

Другие опции могут быть добавлены к таблице sys_config. Например, процедуры diagnostics() и execute_prepared_stmt() используют опцию debug, если она существует, но эта опция, не является частью таблицы sys_config по умолчанию, потому что вывод отладки обычно включается только временно, устанавливая соответствующую опцию @sys.debug. Чтобы включить вывод отладки, не имея необходимости устанавливать ту переменную в отдельных сеансах, добавьте опцию к таблице:

mysql> INSERT INTO sys_config (variable, value) VALUES('debug', 'ON');
Чтобы изменить настройки отладки в таблице, сделайте две вещи. Во-первых, измените значение в таблице непосредственно:
mysql> UPDATE sys_config SET value = 'OFF' WHERE variable = 'debug';
Во-вторых, чтобы также гарантировать, что вызовы процедуры в пределах текущего сеанса используют измененное значение из таблицы, установите соответствующую определяемую пользователем переменную в NULL:
mysql> SET @sys.debug = NULL;

24.4.2.2. Триггер sys_config_insert_set_user

Для строк, добавленных к таблице sys_config запросом INSERT триггер sys_config_insert_set_user устанавливает столбец set_by к текущему пользователю.

24.4.2.3. Триггер sys_config_update_set_user

Триггер sys_config_update_set_user для таблицы sys_config подобен триггеру sys_config_insert_set_user, но для запросов UPDATE.

24.4.3. Представления sys Schema

Следующие разделы описывают представления sys schema.

sys schema содержит много представлений, которые суммируют таблицы Performance Schema различными способами. Большинство этих представлений прибывает в пары, такие, что у одного члена пары есть то же самое имя, как у другого участника плюс x$. Например, host_summary_by_file_io суммирует ввод/вывод файла, сгруппированный хостом, и выводит на экран времена ожидания, преобразованные из пикосекунд в более читаемые значения (с модулями):

mysql> SELECT * FROM host_summary_by_file_io;
+------------+-------+------------+
| host       | ios   | io_latency |
+------------+-------+------------+
| localhost  | 67570 | 5.38 s     |
| background |  3468 | 4.18 s     |
+------------+-------+------------+
x$host_summary_by_file_io суммирует те же самые данные, но выводит на экран неотформатированные времена ожидания в пикосекундах:
mysql> SELECT * FROM x$host_summary_by_file_io;
+------------+-------+---------------+
| host       | ios   | io_latency    |
+------------+-------+---------------+
| localhost  | 67574 | 5380678125144 |
| background |  3474 | 4758696829416 |
+------------+-------+---------------+
Представление без x$ предназначено, чтобы обеспечить вывод, который более удобен для пользователя и легче читать. Представление с x$ выводит на экран те же самые значения в сырой форме и предназначено больше для использования с другими инструментами, которые выполняют их собственную обработку данных.

Представления без x$ отличается от x$ этим:

  • Значения байта отформатированы с использованием единиц размера format_bytes().

  • Временные значения отформатированы с использованием временных модулей format_time().
  • Запросы SQL усеченны к максимальной ширине отображения через format_statement().
  • Путь сокращен, используя format_path().

24.4.3.1. Представления host_summary и x$host_summary

Эти представления суммируют деятельность запросов, ввод/вывод файла и соединения, сгруппированные хостом.

У представлений host_summary и x$host_summary есть эти столбцы:

  • host

    Хост, с которого соединялся клиент. Строки, у которых столбец HOST в основной таблице Performance Schema NULL отведены для фоновых потоков и сообщаются с именем хоста background.

  • statements

    Общее количество запросов для хоста.

  • statement_latency

    Общее количество времени ожидания рассчитанных запросов для хоста.

  • statement_avg_latency

    Среднее время ожидания на рассчитанный запрос для хоста.

  • table_scans

    Общее количество сканирований таблицы для хоста.

  • file_ios

    Общее количество событий ввода/вывода файла для хоста.

  • file_io_latency

    Общее время ожидания рассчитанных событий ввода/вывода файла для хоста.

  • current_connections

    Текущее число соединений для хоста.

  • total_connections

    Общее количество соединений для хоста.

  • unique_users

    Число различных пользователей для хоста.

  • current_memory

    Текущее количество выделенной памяти для хоста.

  • total_memory_allocated

    Общая сумма выделенной памяти для хоста.

24.4.3.2. Представления host_summary_by_file_io и x$host_summary_by_file_io

Эти представления суммируют ввод/вывод файла, сгруппированный хостом. По умолчанию, строки сортированы по убыванию полного времени ожидания ввода/вывода файла.

У представлений host_summary_by_file_io и x$host_summary_by_file_io есть эти столбцы:

  • host

    Хост, с которого соединялся клиент. Строки, у которых столбец HOST в основной таблице Performance Schema NULL отведены для фоновых потоков и сообщаются с именем хоста background.

  • ios

    Общее количество событий ввода/вывода файла для хоста.

  • io_latency

    Общее количество времени ожидания событий ввода/вывода файла для хоста.

24.4.3.3. Представления host_summary_by_file_io_type and x$host_summary_by_file_io_type

Эти представления суммируют ввод/вывод файла, сгруппированный типом событий и узлом. По умолчанию строки сортированы узлом и по убыванию полного времени ожидания ввода/вывода.

У представлений host_summary_by_file_io_type и x$host_summary_by_file_io_type есть эти столбцы:

  • host

    Хост, с которого соединялся клиент. Строки, у которых столбец HOST в основной таблице Performance Schema NULL отведены для фоновых потоков и сообщаются с именем хоста background.

  • event_name

    Имя события ввода/вывода файла.

  • total

    Общее количество возникновений случая ввода/вывода файла для узла.

  • total_latency

    Общее время ожидания рассчитанных возникновений случая ввода/вывода файла для узла.

  • max_latency

    Максимальное время ожидания рассчитанных возникновений случая ввода/вывода файла для узла.

24.4.3.4. Представления host_summary_by_stages и x$host_summary_by_stages

Эти представления суммируют этапы запроса, сгруппированные хостом. По умолчанию строки сортированы узлом и по убыванию полного времени ожидания.

У представлений host_summary_by_stages и x$host_summary_by_stages есть эти столбцы:

  • host

    Хост, с которого соединялся клиент. Строки, у которых столбец HOST в основной таблице Performance Schema NULL отведены для фоновых потоков и сообщаются с именем хоста background.

  • event_name

    Имя этапа событий.

  • total

    Общее количество возникновений случая этапа для узла.

  • total_latency

    Общее время ожидания рассчитанных возникновений случая этапа для узла.

  • avg_latency

    Среднее время ожидания на рассчитанное возникновение случая этапа для узла.

24.4.3.5. Представления host_summary_by_statement_latency и x$host_summary_by_statement_latency

Эти представления суммируют полную статистику запросов, сгруппированную узлом. По умолчанию строки сортированы по убыванию полного времени ожидания.

У представлений host_summary_by_statement_latency и x$host_summary_by_statement_latency есть эти столбцы:

  • host

    Хост, с которого соединялся клиент. Строки, у которых столбец HOST в основной таблице Performance Schema NULL отведены для фоновых потоков и сообщаются с именем хоста background.

  • total

    Общее количество запросов для узла.

  • total_latency

    Общее время ожидания рассчитанных запросов для узла.

  • max_latency

    Максимальн время ожидания рассчитанных запросов для узла.

  • lock_latency

    Полное время ожидания блокировок рассчитанными запросами для узла.

  • rows_sent

    Общее количество строк, возвращенное запросами для узла.

  • rows_examined

    Общее количество строк, прочитанных из механизмов хранения запросами для узла.

  • rows_affected

    Общее количество строк, затронутое запросами для узла.

  • full_scans

    Общее количество полного сканирования таблицы запросами для узла.

24.4.3.6. Представления host_summary_by_statement_type и x$host_summary_by_statement_type

Эти представления суммируют сведения о выполненных запросах, сгруппированных типом запроса и узлом. По умолчанию строки сортированы узлом и по убыванию полного времени ожидания.

У представлений host_summary_by_statement_type и x$host_summary_by_statement_type есть эти столбцы:

  • host

    Хост, с которого соединялся клиент. Строки, у которых столбец HOST в основной таблице Performance Schema NULL отведены для фоновых потоков и сообщаются с именем хоста background.

  • statement

    Заключительный компонент имени события.

  • total

    Общее количество возникновений события запроса для узла.

  • total_latency

    Общее время ожидания рассчитанных возникновений случая запроса для узла.

  • max_latency

    Максимальное время ожидания рассчитанных возникновений случая запроса для узла.

  • lock_latency

    Полное время ожидания блокировок рассчитанными возникновениями случая запроса для узла.

  • rows_sent

    Общее количество строк, возвращенных возникновениями случая запроса для узла.

  • rows_examined

    Общее количество строк, считанных из механизмов хранения возникновениями случая запроса для узла.

  • rows_affected

    Общее количество строк, затронутое возникновениями случая запроса для узла.

  • full_scans

    Общее количество полного сканирования таблицы возникновениями случая запроса для узла.

24.4.3.7. Представления innodb_buffer_stats_by_schema и x$innodb_buffer_stats_by_schema

Эти представления суммируют информацию в таблице INFORMATION_SCHEMA INNODB_BUFFER_PAGE, группируя схемой. По умолчанию строки сортированы по убыванию размера буфера.

У представлений innodb_buffer_stats_by_schema и x$innodb_buffer_stats_by_schema есть эти столбцы:

  • object_schema

    Название схемы объекта или InnoDB System, если таблица принадлежит механизму хранения InnoDB.

  • allocated

    Общее количество байтов, выделенное для схемы.

  • data

    Общее количество байтов данных, выделенное для схемы.

  • pages

    Общее количество страниц, выделенное для схемы.

  • pages_hashed

    Общее количество хешированных страниц, выделенное для схемы.

  • pages_old

    Общее количество старых страниц, выделенное для схемы.

  • rows_cached

    Общее количество кэшируемых строк для схемы.

24.4.3.8. Представления innodb_buffer_stats_by_table и x$innodb_buffer_stats_by_table

Эти представления суммируют информацию в таблице INFORMATION_SCHEMA INNODB_BUFFER_PAGE , группируя схемой и таблицей. По умолчанию строки отсортированы по убыванию размера буфера.

У представлений innodb_buffer_stats_by_table и x$innodb_buffer_stats_by_table есть эти столбцы:

  • object_schema

    Название схемы объекта или InnoDB System, если таблица принадлежит механизму хранения InnoDB.

  • object_name

    Имя таблицы.

  • allocated

    Общее количество байтов, выделенное для таблицы.

  • data

    Общее количество байтов данных, выделенное для схемы.

  • pages

    Общее количество страниц, выделенное для схемы.

  • pages_hashed

    Общее количество хешированных страниц, выделенное для схемы.

  • pages_old

    Общее количество старых страниц, выделенное для схемы.

  • rows_cached

    Общее количество кэшируемых строк для схемы.

24.4.3.9. Представления innodb_lock_waits и x$innodb_lock_waits

Эти представления суммируют блокировки InnoDB, которых ждут транзакции. По умолчанию строки сортированы по убыванию возраста блокировки.

У представлений innodb_lock_waits и x$innodb_lock_waits есть эти столбцы:

  • wait_started

    Время, в которое блокировка начала ждать.

  • wait_age

    Сколько времени блокировка ждала (значение TIME).

  • wait_age_secs

    Сколько времени блокировка ждала в секундах.

  • locked_table

    Название заблокированной таблицы.

    Этот столбец содержит объединенные значения схемы/имени таблицы. Это было удалено в MySQL 8.0.1 и заменено столбцами locked_table_schema и locked_table_name, которые содержат отдельные столбцы с именами схемы и таблицы.

  • locked_table_schema

    Схема, которая содержит заблокированную таблицу.

    Этот столбец был добавлен в MySQL 8.0.1.

  • locked_table_name

    Название заблокированной таблицы.

    Этот столбец был добавлен в MySQL 8.0.1.

  • locked_table_partition

    Название заблокированного разделения, если есть, иначе NULL. Этот столбец был добавлен в MySQL 8.0.1.

  • locked_table_subpartition

    Название заблокированного подразделения, если есть, иначе NULL. Этот столбец был добавлен в MySQL 8.0.1.

  • locked_index

    Название заблокированного индекса.

  • locked_type

    Тип блокировки ожидания.

  • waiting_trx_id

    ID транзакции ожидания.

  • waiting_trx_started

    Время, в которое запускалась транзакция.

  • waiting_trx_age

    Сколько времени транзакция ждала (значение TIME).

  • waiting_trx_rows_locked

    Число строк заблокировано транзакцией.

  • waiting_trx_rows_modified

    Число строк изменено транзакцией.

  • waiting_pid

    Идентификатор процесса транзакции.

  • waiting_query

    Запрос, который ждет блокировки.

  • waiting_lock_id

    Идентификатор блокировки ожидания.

  • waiting_lock_mode

    Режим блокировки ожидания.

  • blocking_trx_id

    Идентификатор транзакции, которая блокирует блокировку ожидания.

  • blocking_pid

    Идентификатор блокирующей транзакции.

  • blocking_query

    Запрос, выполняемый блокирующей транзакцией.

  • blocking_lock_id

    Идентификатор блокировки, которая блокирует блокировку ожидания.

  • blocking_lock_mode

    Режим блокировки, которая блокирует блокировку ожидания.

  • blocking_trx_started

    Время, в которое запускалась блокирующая транзакция.

  • blocking_trx_age

    Сколько времени блокирующая транзакция выполняется (значение TIME).

  • blocking_trx_rows_locked

    Число строк заблокировано блокирующей транзакцией.

  • blocking_trx_rows_modified

    Число строк изменено блокирующей транзакцией.

  • sql_kill_blocking_query

    Запрос KILL, чтобы уничтожить блокирующий запрос.

  • sql_kill_blocking_connection

    Запрос KILL, чтобы уничтожить сеанс, выполняющий блокирующий запрос.

24.4.3.10. Представления io_by_thread_by_latency и x$io_by_thread_by_latency Views

Эти представления суммируют потребителей ввода/вывода, чтобы вывести на экран время ожидания ввода/вывода, сгруппированное потоком. По умолчанию строки отсортированы по убыванию полного времени ожидания ввода/вывода.

У представлений io_by_thread_by_latency и x$io_by_thread_by_latency есть эти столбцы:

  • user

    Для потоков переднего плана учетная запись связана с потоком. Для фоновых потоков имя потока.

  • total

    Общее количество событий ввода/вывода для потока.

  • total_latency

    Общее время ожидания рассчитанных событий ввода/вывода для потока.

  • min_latency

    Минимальное время ожидания рассчитанных событий ввода/вывода для потока.

  • avg_latency

    Среднее время ожидания на рассчитанный случай ввода/вывода для потока.

  • max_latency

    Максимальное время ожидания рассчитанных событий ввода/вывода для потока.

  • thread_id

    Идентификатор потока.

  • processlist_id

    Для потоков переднего плана processlist ID потока. Для фоновых потоков NULL.

24.4.3.11. Представления io_global_by_file_by_bytes и x$io_global_by_file_by_bytes

Эти представления суммируют глобальных потребителей ввода/вывода, чтобы вывести на экран количество ввода/вывода, сгруппированного файлом. По умолчанию строки отсортированы по убыванию полного ввода/вывода (байтов прочитано и записано).

У представлений io_global_by_file_by_bytes и x$io_global_by_file_by_bytes есть эти столбцы:

  • file

    Имя пути к файлу.

  • count_read

    Общее количество событий чтения для файла.

  • total_read

    Общее количество байтов, прочитанных из файла.

  • avg_read

    Среднее число байтов за чтение из файла.

  • count_write

    Общее количество событий записи для файла.

  • total_written

    Общее количество байтов, записанных в файл.

  • avg_write

    Среднее число байтов за запись в файл.

  • total

    Общее количество байтов, прочитанных и записанных в файл.

  • write_pct

    Процент полных байтов ввода/вывода, которые были записаны.

24.4.3.12. Представления io_global_by_file_by_latency и x$io_global_by_file_by_latency

Эти представления суммируют глобальных потребителей ввода/вывода, чтобы вывести на экран время ожидания ввода/вывода, сгруппированное файлом. По умолчанию строки отсортированы по убыванию полного времени ожидания.

У представлений io_global_by_file_by_latency и x$io_global_by_file_by_latency есть эти столбцы:

  • file

    Имя пути к файлу.

  • total

    Общее количество событий ввода/вывода для файла.

  • total_latency

    Общее время ожидания рассчитанных событий ввода/вывода для файла.

  • count_read

    Общее количество событий чтения для файла.

  • read_latency

    Общее время ожидания рассчитанных событий чтения для файла.

  • count_write

    Общее количество событий записи для файла.

  • write_latency

    Общее количество времени ожидания рассчитанных событий записи для файла.

  • count_misc

    Общее количество других событий ввода/вывода для файла.

  • misc_latency

    Общее время ожидания рассчитанных других событий ввода/вывода для файла.

24.4.3.13. Представления io_global_by_wait_by_bytes и x$io_global_by_wait_by_bytes

Эти представления суммируют глобальных потребителей ввода/вывода, чтобы вывести на экран количество ввода/вывода и время ожидания ввода/вывода, сгруппированные случаем. По умолчанию строки сортированы по убыванию полного ввода/вывода (прочитано и записано байтов).

У представлений io_global_by_wait_by_bytes и x$io_global_by_wait_by_bytes есть эти столбцы:

  • event_name

    Имя события ввода/вывода без префикса wait/io/file/.

  • total

    Общее количество возникновений случая ввода/вывода.

  • total_latency

    Общее время ожидания рассчитанных возникновений случая ввода/вывода.

  • min_latency

    Минимальное время ожидания рассчитанных возникновений случая ввода/вывода.

  • avg_latency

    Среднее время ожидания на рассчитанное возникновение случая ввода/вывода.

  • max_latency

    Максимальное время ожидания рассчитанных возникновений случая ввода/вывода.

  • count_read

    Число запросов чтения для случая ввода/вывода.

  • total_read

    Число байтов, прочитанных для случая ввода/вывода.

  • avg_read

    Среднее число байтов за чтение для случая ввода/вывода.

  • count_write

    Число запросов записи ввода/вывода.

  • total_written

    Число байтов, записанных для случая ввода/вывода.

  • avg_written

    Среднее число байтов на запись для случая ввода/вывода.

  • total_requested

    Общее количество байтов, прочиатнных и записанных для случая ввода/вывода.

24.4.3.14. Представления io_global_by_wait_by_latency и x$io_global_by_wait_by_latency

Эти представления суммируют глобальных потребителей ввода/вывода, чтобы вывести на экран количество ввода/вывода и время ожидания ввода/вывода, сгруппированное случаем. По умолчанию строки сортированы по убыванию полного времени ожидания.

У представлений io_global_by_wait_by_latency и x$io_global_by_wait_by_latency есть эти столбцы:

  • event_name

    Имя события ввода/вывода без префикса wait/io/file/.

  • total

    Общее количество возникновений случая ввода/вывода.

  • total_latency

    Общее время ожидания рассчитанных возникновений случая ввода/вывода.

  • avg_latency

    Среднее время ожидания на рассчитанное возникновение случая ввода/вывода.

  • max_latency

    Максимальное время ожидания рассчитанных возникновений случая ввода/вывода.

  • read_latency

    Общее время ожидания рассчитанных возникновений чтения случая ввода/вывода.

  • write_latency

    Общее время ожидания рассчитанных случаев записи.

  • misc_latency

    Общее время ожидания рассчитанных других возникновений случая ввода/вывода.

  • count_read

    Число запросов чтения для случая ввода/вывода.

  • total_read

    Число байтов, прочитанных для случая ввода/вывода.

  • avg_read

    Среднее число байтов на чтение для случая ввода/вывода.

  • count_write

    Число запросов записи.

  • total_written

    Число байтов, записанных для случая ввода/вывода.

  • avg_written

    Среднее число байтов на запись для случая ввода/вывода.

24.4.3.15. Представления latest_file_io и x$latest_file_io

Эти представления суммируют деятельность ввода/вывода файла, сгруппированную файлом и потоком. По умолчанию строки сортированы с новым вводом/выводом в начале.

У представлений latest_file_io и x$latest_file_io есть эти столбцы:

  • thread

    Для потоков переднего плана учетная запись связана с потоком (и номер порта для соединений TCP/IP). Для фоновых потоков имя и ID потока.

  • file

    Имя пути к файлу.

  • latency

    Время ожидания для случая ввода/вывода файла.

  • operation

    Тип работы.

  • requested

    Число байтов данных для случая ввода/вывода файла.

24.4.3.16. Представления memory_by_host_by_current_bytes и x$memory_by_host_by_current_bytes

Эти представления суммируют использование памяти, сгруппированное узлом. По умолчанию строки сортированы по убыванию использования объема памяти.

У представлений memory_by_host_by_current_bytes и x$memory_by_host_by_current_bytes есть эти столбцы:

  • host

    Хост, с которого соединялся клиент. Строки, у которых столбец HOST в основной таблице Performance Schema NULL отведены для фоновых потоков и сообщаются с именем хоста background.

  • current_count_used

    Текущее число выделенных блоков памяти, которые еще не были освобождены для хоста.

  • current_allocated

    Текущее число выделенных байтов, которые еще не были освобождены для хоста.

  • current_avg_alloc

    Текущее число выделенных байтов на блок памяти для хоста.

  • current_max_alloc

    Самое большое текущее распределение памяти в байтах для хоста.

  • total_allocated

    Полное распределение памяти в байтах для хоста.

24.4.3.17. Представления memory_by_thread_by_current_bytes и x$memory_by_thread_by_current_bytes

Эти представления суммируют использование памяти, сгруппированное потоком. По умолчанию строки сортированы по убыванию использования объема памяти.

У представлений memory_by_thread_by_current_bytes и x$memory_by_thread_by_current_bytes есть эти столбцы:

  • thread_id

    ID потока.

  • user

    Пользователь потока или имя потока.

  • current_count_used

    Текущее число выделенных блоков памяти, которые еще не были освобождены для потока.

  • current_allocated

    Текущее число выделенных байтов, которые еще не были освобождены для потока.

  • current_avg_alloc

    Текущее число выделенных байтов на блок памяти для потока.

  • current_max_alloc

    Самое большое текущее распределение памяти в байтах для потока.

  • total_allocated

    Полное распределение памяти в байтах для потока.

24.4.3.18. Представления memory_by_user_by_current_bytes и x$memory_by_user_by_current_bytes

Эти представления суммируют использование памяти, сгруппированное пользователем. По умолчанию строки сортированы по убыванию использования объема памяти.

У представлений memory_by_user_by_current_bytes и x$memory_by_user_by_current_bytes есть эти столбцы:

  • user

    Имя пользователя клиента. Строки, для которых столбец USER в основной таблице Performance Schema NULL, для фоновых потоков и сообщаются с именем хоста background.

  • current_count_used

    Текущее число выделенных блоков памяти, которые еще не были освобождены для пользователя.

  • current_allocated

    Текущее число выделенных байтов, которые еще не были освобождены для пользователя.

  • current_avg_alloc

    Текущее число выделенных байтов на блок памяти для пользователя.

  • current_max_alloc

    Самое большое текущее распределение памяти в байтах для пользователя.

  • total_allocated

    Полное распределение памяти в байтах для пользователя.

24.4.3.19. Представления memory_global_by_current_bytes и x$memory_global_by_current_bytes

Эти представления суммируют использование памяти, сгруппированное типом распределения (то есть событием). По умолчанию строки сортированы по убыванию используемого объема памяти.

У представлений memory_global_by_current_bytes и x$memory_global_by_current_bytes есть эти столбцы:

  • event_name

    Имя события памяти.

  • current_count

    Общее количество возникновений случая.

  • current_alloc

    Текущее число выделенных байтов, которые еще не были освобождены для случая.

  • current_avg_alloc

    Текущее число выделенных байтов на блок памяти для случая.

  • high_count

    Высшая точка числа блоков памяти, выделенных для случая.

  • high_alloc

    Высшая точка числа байтов, выделенных для случая.

  • high_avg_alloc

    Высшая точка для среднего числа байтов на блок памяти, выделенный для случая.

24.4.3.20. Представления memory_global_total и x$memory_global_total

Эти представления суммируют полное использование памяти в пределах сервера.

У представлений memory_global_total и x$memory_global_total есть эти столбцы:

  • total_allocated

    Сколько байт памяти выделено в пределах сервера.

24.4.3.21. Представление metrics

Это представление суммирует метрики сервера MySQL, чтобы показать имена переменной, значения и типы. По умолчанию строки сортированы типом и именем переменной.

Представление metrics включает эту информацию:

  • Глобальные переменные состояния из таблицы Performance Schema global_status.

  • Метрики InnoDB из таблицы INFORMATION_SCHEMA INNODB_METRICS.
  • Текущее и полное распределение памяти, основанное на инструментовке памяти Performance Schema.
  • Текущее время (удобочитаемый и Unix timestamp форматы).

Есть некоторое дублирование информации между таблицами global_status и INNODB_METRICS, которое устраняет представление metrics.

Представление metrics имеет эти столбцы:

  • Variable_name

    Метрическое имя. Метрический тип определяет источник, из которого взято имя:

    • Для глобальных переменных состояния: столбец VARIABLE_NAME таблицы global_status.

    • Для метрики InnoDB: столбец NAME таблицы INNODB_METRICS.
    • Для других метрик: обеспеченная представлением описательная строка.

  • Variable_value

    Метрическое значение. Метрический тип определяет источник, из которого взято значение:

  • Type

    Метрический тип:

    • Для глобальных переменных состояния: Global Status.

    • Для InnoDB метрики: InnoDB Metrics - %, где % заменен значением столбца SUBSYSTEM таблицы INNODB_METRICS.
    • Для метрик памяти: Performance Schema.
    • Для текущего времени: System Time.

  • Enabled

    Включена ли метрика:

    • Для глобальных переменных состояния: YES.

    • Для InnoDB-метрики: YES, если столбец STATUS таблицы INNODB_METRICS enabled, NO иначе.
    • Для метрик памяти: NO, YES или PARTIAL (сейчас PARTIAL происходит только для метрик памяти и указывает, что не все инструменты memory/% включены. Инструменты памяти Performance Schema всегда включаются).
    • Для текущего времени: YES.

24.4.3.22. Представления processlist и x$processlist

Эти представления суммируют processlist информацию. Они предоставляют более полную информацию, чем запрос SHOW PROCESSLIST и таблица INFORMATION_SCHEMA PROCESSLIST, а также не блокируют ничего. По умолчанию строки сортированы по убыванию времени процесса и убыванию времени ожидания.

Описания столбца здесь кратки. Для дополнительной информации см. описание таблицы Performance Schema threads в раздел 23.9.16.3.

У представлений processlist и x$processlist есть эти столбцы:

  • thd_id

    ID потока.

  • conn_id

    ID соединения.

  • user

    Пользователь потока или имя потока.

  • db

    База данных по умолчанию для потока или NULL, если нет ни одной.

  • command

    Для потоков переднего плана тип команды, которую поток выполняет от имени клиента, или Sleep, если сеанс неактивен.

  • state

    Действие, случай или статус, которое указывает на то, что делает поток.

  • time

    Время в секундах, которое поток был в его текущем состоянии.

  • current_statement

    Запрос, который поток выполняет, или NULL, если это не выполняет запросы.

  • statement_latency

    Сколько времени запрос выполняется.

  • progress

    Процент работы, завершенной для этапов по сообщению продвижения поддержки. См. раздел 24.3 .

  • lock_latency

    Время, потраченное на ожидание блокировок текущим запросом.

  • rows_examined

    Число строк, считанных из механизмов хранения текущим запросом.

  • rows_sent

    Число строк, возвращенное текущим запросом.

  • rows_affected

    Число строк, затронутых текущим запросом.

  • tmp_tables

    Число внутренних временных таблиц в памяти, созданное текущим запросом.

  • tmp_disk_tables

    Число внутренних временных таблиц на диске, созданное текущим запросом.

  • full_scan

    Число полного сканирования таблицы текущим запросом.

  • last_statement

    Последний запрос, выполненный потоком, если там в настоящее время нет выполняющегося или ждущего запроса.

  • last_statement_latency

    Сколько времени последний запрос выполняется.

  • current_memory

    Число байтов выделено потоком.

  • last_wait

    Название наиболее свежего ждущего случая потока.

  • last_wait_latency

    Время наиболее свежего ждущего случая потока.

  • source

    Исходный файл и номер строки, содержащей инструментованный код, который произвел случай.

  • trx_latency

    Время ожидания текущей транзакции для потока.

  • trx_state

    Статус текущей транзакции для потока.

  • trx_autocommit

    Был ли включен режим autocommit, когда текущая транзакция запускалась.

  • pid

    ID процесса клиента.

  • program_name

    Название программы клиента.

24.4.3.23. Представление ps_check_lost_instrumentation

Это представление возвращает информацию о потерянных инструментах Performance Schema, чтобы указать, способна ли Performance Schema контролировать все данные во время выполнения.

У представления ps_check_lost_instrumentation есть эти столбцы:

  • variable_name

    Имя переменной состояния Performance Schema, указывающее, какой тип инструмента был потерян.

  • variable_value

    Число инструментов.

24.4.3.24. Представление schema_auto_increment_columns

Это представление указывает, которые таблицы имеют столбцы AUTO_INCREMENT и предоставляют информацию о тех столбцах такую, как текущие и максимальные значения столбцов и отношение использования (отношение использованных к возможным значениям). По умолчанию строки отсортированы по убыванию отношения использования и максимальному значению столбца.

Таблицы в этих схемах исключены из вывода представления: mysql, sys, INFORMATION_SCHEMA, performance_schema.

У представления schema_auto_increment_columns есть эти столбцы:

  • table_schema

    Схема, которая содержит таблицу.

  • table_name

    Таблица, которая содержит столбец AUTO_INCREMENT.

  • column_name

    Название столбца AUTO_INCREMENT.

  • data_type

    Тип данных столбца.

  • column_type

    Тип столбца, который является типом данных плюс возможно другая информация. Например, для столбца типа bigint(20) unsigned тип данных bigint.

  • is_signed

    Со знаком ли тип столбца.

  • is_unsigned

    Без знака ли тип столбца.

  • max_value

    Максимальное разрешенное значение для столбца.

  • auto_increment

    Текущее значение AUTO_INCREMENT для столбца.

  • auto_increment_ratio

    Отношение использованных к разрешенным значениям для столбца. Это указывает, сколько значений из последовательности израсходовано.

24.4.3.25. Представления schema_index_statistics и x$schema_index_statistics

Эти представления обеспечивают индексную статистику. По умолчанию строки сортированы по убыванию и общему количеству времени ожидания индекса.

У представлений schema_index_statistics и x$schema_index_statistics есть эти столбцы:

  • table_schema

    Схема, которая содержит таблицу.

  • table_name

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

  • index_name

    Название индекса.

  • rows_selected

    Общее количество чтения строк, используя индекс.

  • select_latency

    Общее время ожидания рассчитанных чтений, используя индексирование.

  • rows_inserted

    Общее количество строк вставлено в индекс.

  • insert_latency

    Общее время ожидания рассчитанных вставок в индекс.

  • rows_updated

    Общее количество строк обновлено в индексировании.

  • update_latency

    Общее время ожидания рассчитанных обновлений в индексировании.

  • rows_deleted

    Общее количество строк, удаленных из индекса.

  • delete_latency

    Общее время ожидания рассчитанных удалений из индекса.

24.4.3.26. Представление schema_object_overview

Это представление суммирует типы объектов в пределах каждой схемы. По умолчанию строки отсортированы типом объекта и схемой.

Для случаев MySQL с большим количеством объектов это представление может занять много времени для выполнения.

У представления schema_object_overview есть эти столбцы:

  • db

    Имя схемы.

  • object_type

    Тип объекта: BASE TABLE, INDEX (index_type), EVENT, FUNCTION, PROCEDURE, TRIGGER, VIEW.

  • count

    Число объектов данного типа в схеме.

24.4.3.27. Представления schema_redundant_indexes и x$schema_flattened_keys

Представление schema_redundant_indexes отображает индексы, которые дублируют другие индексы или сокращены ими. Это вспомогательное представление для schema_redundant_indexes .

В следующих описаниях столбца доминантный индекс тот, который делает избыточное индексирование избыточным.

У представления schema_redundant_indexes есть эти столбцы:

  • table_schema

    Схема, которая содержит таблицу.

  • table_name

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

  • redundant_index_name

    Название избыточного индекса.

  • redundant_index_columns

    Названия столбцов в избыточном индексе.

  • redundant_index_non_unique

    Число неуникальных столбцов в избыточном индексе.

  • dominant_index_name

    Название доминантного индекса.

  • dominant_index_columns

    Названия столбцов в доминантном индексе.

  • dominant_index_non_unique

    Число неуникальных столбцов в доминантном индексе.

  • subpart_exists

    Индексирует ли индекс только часть столбца.

  • sql_drop_index

    Запрос, чтобы удалить избыточный индекс.

У представления x$schema_flattened_keys есть эти столбцы:

  • table_schema

    Схема, которая содержит таблицу.

  • table_name

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

  • index_name

    Имя индекса.

  • non_unique

    Число неуникальных столбцов в индексе.

  • subpart_exists

    Индексирует ли индекс только часть столбца.

  • index_columns

    Название столбцов в индексе.

24.4.3.28. Представления schema_table_lock_waits и x$schema_table_lock_waits

Это представление показывает, какие сеансы заблокированы, ожидая на блокировках метаданных, и что блокирует их.

Описания столбца здесь кратки. Для дополнительной информации см. описание таблицы Performance Schema metadata_locks в разделе 23.9.12.3.

У представлений schema_table_lock_waits и x$schema_table_lock_waits есть эти столбцы:

  • object_schema

    Схема, содержащая объект, который будет заблокирован.

  • object_name

    Название инструментованного объекта.

  • waiting_thread_id

    Идентификатор потока, который ждет блокировки.

  • waiting_pid

    Идентификатор processlist потока, который ждет блокировки.

  • waiting_account

    Учетная запись, связанная с сеансом, который ждет блокировки.

  • waiting_lock_type

    Тип блокировки ожидания.

  • waiting_lock_duration

    Сколько времени блокировка ждет.

  • waiting_query

    Запрос, который ждет блокировку.

  • waiting_query_secs

    Сколько времени запрос ждал, в секундах.

  • waiting_query_rows_affected

    Число строк, затронутое запросом.

  • waiting_query_rows_examined

    Число строк, считанных из механизмов хранения запросом.

  • blocking_thread_id

    Идентификатор потока, который блокирует блокировку ожидания.

  • blocking_pid

    processlist ID потока, который блокирует блокировку ожидания.

  • blocking_account

    Учетная запись, связанная с потоком, который блокирует блокировку ожидания.

  • blocking_lock_type

    Тип блокировки, которая блокирует блокировку ожидания.

  • blocking_lock_duration

    Сколько времени блокировка была проведена.

  • sql_kill_blocking_query

    Запрос KILL, чтобы уничтожить запрос блокировки.

  • sql_kill_blocking_connection

    Запрос KILL, чтобы уничтожить сеанс, выполняющий запрос блокировки.

24.4.3.29. Представления schema_table_statistics и x$schema_table_statistics

Эти представления суммируют табличную статистику. По умолчанию строки сортированы по убыванию общего времени ожидания.

Это вспомогательные представления для x$ps_schema_table_statistics_io.

У представлений schema_table_statistics и x$schema_table_statistics есть эти столбцы:

  • table_schema

    Схема, которая содержит таблицу.

  • table_name

    Имя таблицы.

  • total_latency

    Общее время ожидания рассчитанных событий ввода/вывода для таблицы.

  • rows_fetched

    Общее количество строк, прочитанных из таблицы.

  • fetch_latency

    Общее время ожидания рассчитанных событий ввода/вывода чтения для таблицы.

  • rows_inserted

    Общее количество строк, вставленных в таблицу.

  • insert_latency

    Общее время ожидания рассчитанных событий ввода/вывода вставки для таблицы.

  • rows_updated

    Общее количество строк, обновленных в таблице.

  • update_latency

    Общее время ожидания рассчитанных событий ввода/вывода обновления для таблицы.

  • rows_deleted

    Общее количество строк, удаленных из таблицы.

  • delete_latency

    Общее время ожидания рассчитанных событий удаления ввода/вывода для таблицы.

  • io_read_requests

    Общее количество запросов чтения для таблицы.

  • io_read

    Общее количество байтов, прочитанных из таблицы.

  • io_read_latency

    Общее время ожидания чтений из таблицы.

  • io_write_requests

    Общее количество запросов записи для таблицы.

  • io_write

    Общее количество байтов, записанных в таблицу.

  • io_write_latency

    Общее время ожидания записи в таблицу.

  • io_misc_requests

    Общее количество разного ввода/вывода для таблицы.

  • io_misc_latency

    Общее время ожидания разных запросов ввода/вывода для таблицы.

24.4.3.30. Представления schema_table_statistics_with_buffer и x$schema_table_statistics_with_buffer

Эти представления суммируют табличную статистику, включая статистику буферного бассейна InnoDB. По умолчанию строки отсортированы по убыванию общего времени ожидания. Применяется вспомогательное представление x$ps_schema_table_statistics_io.

У представлений schema_table_statistics_with_buffer и x$schema_table_statistics_with_buffer есть эти столбцы:

  • table_schema

    Схема, которая содержит таблицу.

  • table_name

    Имя таблицы.

  • rows_fetched

    Общее количество строк, прочитанных из таблицы.

  • fetch_latency

    Общее время ожидания рассчитанных событий ввода/вывода чтения для таблицы.

  • rows_inserted

    Общее количество строк, вставленных в таблицу.

  • insert_latency

    Общее время ожидания рассчитанных событий ввода/вывода вставки для таблицы.

  • rows_updated

    Общее количество строк обновлено в таблице.

  • update_latency

    Общее время ожидания рассчитанных событий ввода/вывода обновления для таблицы.

  • rows_deleted

    Общее количество строк, удаленных из таблицы.

  • delete_latency

    Общее время ожидания рассчитанных событий удаления ввода/вывода для таблицы.

  • io_read_requests

    Общее количество запросов чтения для таблицы.

  • io_read

    Общее количество байтов, прочитанных из таблицы.

  • io_read_latency

    Общее время ожидания чтений из таблицы.

  • io_write_requests

    Общее количество запросов записи для таблицы.

  • io_write

    Общее количество байтов, записанных в таблицу.

  • io_write_latency

    Общее время ожидания записи в таблицу.

  • io_misc_requests

    Общее количество разного ввода/вывода для таблицы.

  • io_misc_latency

    Общее время ожидания разных запросов ввода/вывода для таблицы.

  • innodb_buffer_allocated

    Общее количество байт, выделенных для буферов InnoDB таблицы.

  • innodb_buffer_data

    Общее количество байт, выделенных для данных InnoDB таблицы.

  • innodb_buffer_free

    Общее количество байт, выделенных для данных InnoDB таблицы. (innodb_buffer_allocated-innodb_buffer_data).

  • innodb_buffer_pages

    Общее количество страниц InnoDB, выделенных для таблицы.

  • innodb_buffer_pages_hashed

    Общее количество хешированных страниц InnoDB, выделенных для таблицы.

  • innodb_buffer_pages_old

    Общее количество старых страниц InnoDB, выделенных для таблицы.

  • innodb_buffer_rows_cached

    Общее количество кэшируемых строк InnoDB для таблицы.

24.4.3.31. Представления schema_tables_with_full_table_scans и x$schema_tables_with_full_table_scans

Они показывают, к каким таблицам получают доступ с полным сканированием таблицы. По умолчанию строки сортированы по убыванию просмотренных строк.

У представлений schema_tables_with_full_table_scans и x$schema_tables_with_full_table_scans есть эти столбцы:

  • object_schema

    Имя схемы.

  • object_name

    Имя таблицы.

  • rows_full_scanned

    Общее количество строк просмотрено полными просмотрами таблицы.

  • latency

    Общее время ожидания полных просмотров таблицы.

24.4.3.32. Представление schema_unused_indexes

Это представлени показывает индексы, для которых нет никаких событий, которые указывают, что они не используются. По умолчанию строки сортированы схемой и таблицей.

Это представление является самым полезным, когда обработка идет столь достаточно долго, что ее рабочая нагрузка является важной. Иначе присутствие индекса в этом представлении, возможно, не является значащим.

У представления schema_unused_indexes есть эти столбцы:

  • object_schema

    Имя схемы.

  • object_name

    Имя таблицы.

  • index_name

    Неиспользуемое имя индекса.

24.4.3.33. Представления session и x$session

Эти представления подобны processlist и x$processlist, но они отфильтровывают фоновые процессы, чтобы вывести на экран только пользовательские сеансы. Для описаний столбцов см. раздел 24.4.3.22.

24.4.3.34. Представление session_ssl_status

Для каждого соединения это представление выводит на экран версию SSL, шифр и количество повторно использованных сеансов SSL.

У представления session_ssl_status есть эти столбцы:

  • thread_id

    Идентификатор потока для соединения.

  • ssl_version

    Версия SSL, которая используется для соединения.

  • ssl_cipher

    Шифр SSL, который используется для соединения.

  • ssl_sessions_reused

    Число повторно использованных сеансов SSL для соединения.

24.4.3.35. Представления statement_analysis и x$statement_analysis

Эти представления перечисляют нормализованные запросы с соединенной статистикой. Контент подражает представлению MySQL Enterprise Monitor Query Analysis. По умолчанию строки сортированы по убыванию полного времени ожидания.

У представлений statement_analysis и x$statement_analysis есть эти столбцы:

  • query

    Нормализованная строка запроса.

  • db

    База данных по умолчанию для запроса или NULL, если нет ни одной.

  • full_scan

    Общее количество полного сканирования таблицы для запроса.

  • exec_count

    Общее количество времени выполнения запроса.

  • err_count

    Общее количество ошибок, произведенных запросом.

  • warn_count

    Общее количество предупреждений, произведенных запросом.

  • total_latency

    Общее время ожидания рассчитанных возникновений запроса.

  • max_latency

    Максимальное время ожидания рассчитанных возникновений запроса.

  • avg_latency

    Среднее время ожидания на рассчитанное возникновение запроса.

  • lock_latency

    Полное время ожидания блокировок рассчитанными возникновениями запроса.

  • rows_sent

    Общее количество строк, возвращенное запросом.

  • rows_sent_avg

    Среднее число строк, возвращенное на возникновение запроса.

  • rows_examined

    Общее количество строк, считанных из механизмов хранения.

  • rows_examined_avg

    Среднее число строк, считанных из механизмов хранения на запрос.

  • rows_affected

    Общее количество строк затронуто запросом.

  • rows_affected_avg

    Среднее число строк затронуто за возникновение запроса.

  • tmp_tables

    Общее количество внутренних временных таблиц в памяти создано возникновениями запроса.

  • tmp_disk_tables

    Общее количество внутренних временных таблиц на диске создано возникновениями запроса.

  • rows_sorted

    Общее количество строк сортировано возникновениями запроса.

  • sort_merge_passes

    Общее количество объединений сортировки.

  • digest

    Обзор запроса.

  • first_seen

    Время, в которое был впервые отмечен запрос.

  • last_seen

    Время, в которое был последний раз отмечен запрос.

24.4.3.36. Представления statements_with_errors_or_warnings и x$statements_with_errors_or_warnings

Эти представления выводят на экран нормализованные запросы, которые произвели ошибки или предупреждения. По умолчанию строки сортированы по убыванию количества ошибок и предупреждений.

У представлений statements_with_errors_or_warnings и x$statements_with_errors_or_warnings есть эти столбцы:

  • query

    Нормализованная строка запроса.

  • db

    База данных по умолчанию для запроса или NULL, если нет.

  • exec_count

    Общее количество времени выполнения запроса.

  • errors

    Общее количество ошибок произведено возникновениями запроса.

  • error_pct

    Процент возникновений запросов, которые произвели ошибки.

  • warnings

    Общее количество предупреждений произведено возникновениями запроса.

  • warning_pct

    Процент возникновений запросов, которые произвели предупреждения.

  • first_seen

    Время, в которое был впервые отмечен запрос.

  • last_seen

    Время, в которое был последний раз отмечен запрос.

  • digest

    Обзор запроса.

24.4.3.37. Представления statements_with_full_table_scans и x$statements_with_full_table_scans

Эти представления выводят на экран нормализованные запросы, которые сделали полное сканирование таблицы. По умолчанию строки сортированы по убыванию процента времени, за которое полный просмотр был сделан и убыванию полного времени ожидания.

У представлений statements_with_full_table_scans и x$statements_with_full_table_scans есть эти столбцы:

  • query

    Нормализованная строка запроса.

  • db

    База данных по умолчанию для запроса или NULL, если нет.

  • exec_count

    Общее количество времени выполнения запроса.

  • total_latency

    Общее время ожидания рассчитанных событий запроса.

  • no_index_used_count

    Общее количество раз, когда индекс не использовался, чтобы просмотреть таблицу.

  • no_good_index_used_count

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

  • no_index_used_pct

    Процент раз, когда индекс не использовался, чтобы просмотреть таблицу.

  • rows_sent

    Общее количество строк возвратилось из таблицы.

  • rows_examined

    Общее количество строк, прочитанных из механизма хранения для таблицы.

  • rows_sent_avg

    Среднее число строк возвратилось из таблицы.

  • rows_examined_avg

    Среднее число строк, прочитанных из механизма хранения для таблицы.

  • first_seen

    Время, в которое был впервые отмечен запрос.

  • last_seen

    Время, в которое был последний раз отмечен запрос.

  • digest

    Обзор запроса.

24.4.3.38. Представления statements_with_runtimes_in_95th_percentile и x$statements_with_runtimes_in_95th_percentile

Эти представления перечисляют запросы со временем выполнения в 95%. По умолчанию строки сортированы по убыванию среднего времени ожидания.

Оба представления используют два вспомогательных представления x$ps_digest_avg_latency_distribution и x$ps_digest_95th_percentile_by_avg_us.

У представлений statements_with_runtimes_in_95th_percentile и x$statements_with_runtimes_in_95th_percentile есть эти столбцы:

  • query

    Нормализованная строка запроса.

  • db

    База данных по умолчанию для запроса или NULL, если нет.

  • full_scan

    Общее количество полного сканирования таблиц возникновениями запроса.

  • exec_count

    Общее количество времени выполнения запроса.

  • err_count

    Общее количество ошибок, произведенное возникновениями запроса.

  • warn_count

    Общее количество предупреждений, произведенное возникновениями запроса.

  • total_latency

    Общее время ожидания рассчитанных возникновений запроса.

  • max_latency

    Максимальное время ожидания рассчитанных возникновений запроса.

  • avg_latency

    Среднее время ожидания на рассчитанное возникновение запроса.

  • rows_sent

    Общее количество строк возвратилось возникновениями запроса.

  • rows_sent_avg

    Среднее число строк возвратилось на возникновение запроса.

  • rows_examined

    Общее количество строк, считанных из механизмов хранения возникновениями запроса.

  • rows_examined_avg

    Среднее число строк, считанных из механизмов хранения на возникновение запроса.

  • first_seen

    Время, в которое был впервые отмечен запрос.

  • last_seen

    Время, в которое был последний раз отмечен запрос.

  • digest

    Обзор запроса.

24.4.3.39. Представления statements_with_sorting и x$statements_with_sorting

Эти представления перечисляют нормализованные запросы, которые выполнили сортировки. По умолчанию строки сортированы по убыванию полного времени ожидания.

У представлений statements_with_sorting и x$statements_with_sorting есть эти столбцы:

  • query

    Нормализованная строка запроса.

  • db

    База данных по умолчанию для запроса или NULL, если нет.

  • exec_count

    Общее количество времени выполнения запроса.

  • total_latency

    Общее время ожидания рассчитанных возникновений запроса.

  • sort_merge_passes

    Общее число объединений сортировок, вызванных запросом.

  • avg_sort_merges

    Среднее число объединений сортировок, вызванных запросом.

  • sorts_using_scans

    Общее количество сортировок с использованием сканирования таблицы.

  • sort_using_range

    Общее количество сортировок с использованием диапазона.

  • rows_sorted

    Общее количество строк сортировано возникновениями запроса.

  • avg_rows_sorted

    Среднее число строк сортировано на возникновение запроса.

  • first_seen

    Время, в которое был впервые отмечен запрос.

  • last_seen

    Время, в которое был последний раз отмечен запрос.

  • digest

    Обзор запроса.

24.4.3.40. Представления statements_with_temp_tables и x$statements_with_temp_tables

Эти представления перечисляют нормализованные запросы, которые использовали временные таблицы. По умолчанию строки сортированы по убыванию числа временных таблиц на диске и убыванию числа временных используемых таблиц в памяти.

У представлений statements_with_temp_tables и x$statements_with_temp_tables есть эти столбцы:

  • query

    Нормализованная строка запроса.

  • db

    База данных по умолчанию для запроса или NULL, если нет.

  • exec_count

    Общее количество времени выполнения запроса.

  • total_latency

    Общее время ожидания рассчитанных возникновений запроса.
  • memory_tmp_tables

    Общее количество внутренних временных таблиц в памяти, созданных возникновениями запроса.

  • disk_tmp_tables

    Общее количество внутренних временных таблиц на диске, созданных возникновениями запроса.

  • avg_tmp_tables_per_query

    Среднее число внутренних временных таблиц создано на возникновение запроса.

  • tmp_tables_to_disk_pct

    Процент внутренних временных таблиц в памяти, которые были преобразованы в таблицы на диске.

  • first_seen

    Время, в которое был впервые отмечен запрос.

  • last_seen

    Время, в которое был последний раз отмечен запрос.

  • digest

    Обзор запроса.

24.4.3.41. Представления user_summary и x$user_summary

Эти представления суммируют деятельность запросов, ввод/вывод файла и соединения, сгруппированные пользователем. По умолчанию строки сортированы по убыванию полного времени ожидания.

У представлений user_summary и x$user_summary есть эти столбцы:

  • user

    Имя пользователя клиента. Строки, для которых столбец USER в основной таблице Performance Schema NULL, отведены для фоновых потоков и сообщаются с именем хоста background.

  • statements

    Общее количество запросов для пользователя.

  • statement_latency

    Общее время ожидания рассчитанных запросов для пользователя.

  • statement_avg_latency

    Среднее время ожидания на рассчитанный запрос для пользователя.

  • table_scans

    Общее количество сканирования таблицы для пользователя.

  • file_ios

    Общее количество событий ввода/вывода файла для пользователя.

  • file_io_latency

    Общее время ожидания рассчитанных событий ввода/вывода файла для пользователя.

  • current_connections

    Текущее число соединений для пользователя.

  • total_connections

    Общее количество соединений для пользователя.

  • unique_hosts

    Число отличных хостов, с которых произошли соединения для пользователя.

  • current_memory

    Текущее количество выделенной памяти для пользователя.

  • total_memory_allocated

    Общая сумма выделенной памяти для пользователя.

24.4.3.42. Представления user_summary_by_file_io и x$user_summary_by_file_io

Эти представления суммируют ввод/вывод файла, сгруппированный пользователем. По умолчанию строки сортированы по убыванию полного времени ожидания ввода/вывода файла.

У представлений user_summary_by_file_io и x$user_summary_by_file_io есть эти столбцы:

  • user

    Имя пользователя клиента. Строки, для которых столбец USER в основной таблице Performance Schema NULL, отведены для фоновых потоков и сообщаются с именем хоста background.

  • ios

    Общее количество событий ввода/вывода файла для пользователя.

  • io_latency

    Общее время ожидания рассчитанных событий ввода/вывода файла для пользователя.

24.4.3.43. Представления user_summary_by_file_io_type и x$user_summary_by_file_io_type

Эти представления суммируют ввод/вывод файла, сгруппированный типом событий и пользователем. По умолчанию строки сортированы по пользователю и убыванию полного времени ожидания.

У представлений user_summary_by_file_io_type и x$user_summary_by_file_io_type есть эти столбцы:

  • user

    Имя пользователя клиента. Строки, для которых столбец USER в основной таблице Performance Schema NULL, отведены для фоновых потоков и сообщаются с именем хоста background.

  • event_name

    Имя события ввода/вывода файла.

  • total

    Общее количество возникновений случая ввода/вывода файла для пользователя.

  • latency

    Общее время ожидания рассчитанных возникновений случая ввода/вывода файла для пользователя.

  • max_latency

    Максимальное время ожидания рассчитанных возникновений случая ввода/вывода файла для пользователя.

24.4.3.44. Представления user_summary_by_stages и x$user_summary_by_stages

Эти представления суммируют этапы, сгруппированные пользователем. По умолчанию строки сортированы по пользователю и убыванию полного времени ожидания этапа.

У представлений user_summary_by_stages и x$user_summary_by_stages есть эти столбцы:

  • user

    Имя пользователя клиента. Строки, для которых столбец USER в основной таблице Performance Schema NULL, отведены для фоновых потоков и сообщаются с именем хоста background.

  • event_name

    Имя этапа события.

  • total

    Общее количество возникновений случая этапа для пользователя.

  • total_latency

    Общее время ожидания рассчитанных возникновений случая этапа для пользователя.

  • avg_latency

    Среднее время ожидания на рассчитанное возникновение случая этапа для пользователя.

24.4.3.45. Представления user_summary_by_statement_latency и x$user_summary_by_statement_latency

Эти представления суммируют полную статистику запросов, сгруппированную пользователем. По умолчанию строки сортированы по убыванию полного времени ожидания.

У представлений user_summary_by_statement_latency и x$user_summary_by_statement_latency есть эти столбцы:

  • user

    Имя пользователя клиента. Строки, для которых столбец USER в основной таблице Performance Schema NULL, отведены для фоновых потоков и сообщаются с именем хоста background.

  • total

    Общее количество запросов для пользователя.

  • total_latency

    Общее время ожидания рассчитанных запросов для пользователя.

  • max_latency

    Максимальное время ожидания рассчитанных запросов для пользователя.

  • lock_latency

    Полное время ожидания блокировок рассчитанными запросами для пользователя.

  • rows_sent

    Общее количество строк, возвращенное запросами для пользователя.

  • rows_examined

    Общее количество строк, считанных из механизмов хранения запросами для пользователя.

  • rows_affected

    Общее количество строк затронуто запросами для пользователя.

  • full_scans

    Общее количество полного сканирования таблицы запросами для пользователя.

24.4.3.46. Представления user_summary_by_statement_type и x$user_summary_by_statement_type

Эти представления суммируют информацию о выполненных запросах, сгруппированных по типу запроса и пользователю. По умолчанию строки сортированы по пользователю и убыванию полного времени ожидания.

У представлений user_summary_by_statement_type и x$user_summary_by_statement_type есть эти столбцы:

  • user

    Имя пользователя клиента. Строки, для которых столбец USER в основной таблице Performance Schema NULL, отведены для фоновых потоков и сообщаются с именем хоста background.

  • statement

    Заключительный компонент имени запроса.

  • total

    Общее количество возникновений случая запроса для пользователя.

  • total_latency

    Общее время ожидания рассчитанных возникновений случая запроса для пользователя.

  • max_latency

    Максимальное время ожидания рассчитанных возникновений случая запроса для пользователя.

  • lock_latency

    Полное время ожидания блокировок рассчитанными возникновениями случая запроса для пользователя.

  • rows_sent

    Общее количество строк, возвращенное возникновениями случая запроса для пользователя.

  • rows_examined

    Общее количество строк, считанных из механизмов хранения возникновениями случая запроса для пользователя.

  • rows_affected

    Общее количество строк затронуто возникновениями случая запроса для пользователя.

  • full_scans

    Общее количество полного сканирования таблицы возникновениями случая запроса для пользователя.

24.4.3.47. Представление version

Это представление обеспечивает текущие версии sys schema и MySQL server.

У представления version есть эти столбцы:

  • sys_version

    Версия sys schema.

  • mysql_version

    Версия MySQL server.

24.4.3.48. Представления wait_classes_global_by_avg_latency и x$wait_classes_global_by_avg_latency

Эти представления суммируют средние времена ожидания класса, сгруппированные классом событий. По умолчанию строки сортированы по убыванию среднего времени ожидания. Проигнорированы неактивные события.

Класс событий определен, отрезая от имени событий все после первых трех компонентов. Например, класс для wait/io/file/sql/slow_log wait/io/file.

У представлений wait_classes_global_by_avg_latency и x$wait_classes_global_by_avg_latency есть эти столбцы:

  • event_class

    Класс событий.

  • total

    Общее количество возникновений событий в классе.

  • total_latency

    Общее время ожидания рассчитанных возникновений событий в классе.

  • min_latency

    Минимальное время ожидания рассчитанных возникновений событий в классе.

  • avg_latency

    Среднее время ожидания на рассчитанное возникновение событий в классе.

  • max_latency

    Максимальное время ожидания рассчитанных возникновений событий в классе.

24.4.3.49. Представления wait_classes_global_by_latency и x$wait_classes_global_by_latency

Эти представления суммируют общие времена ожидания класса, сгруппированные классом событий. По умолчанию строки сортированы по убыванию полного времени ожидания. Проигнорированы неактивные события.

Класс событий определен, отрезая от имени событий все после первых трех компонентов. Например, класс для wait/io/file/sql/slow_log wait/io/file.

У представлений wait_classes_global_by_latency и x$wait_classes_global_by_latency есть эти столбцы:

  • event_class

    Класс событий.

  • total

    Общее количество возникновений событий в классе.

  • total_latency

    Общее время ожидания рассчитанных возникновений событий в классе.

  • min_latency

    Минимальное время ожидания рассчитанных возникновений событий в классе.

  • avg_latency

    Среднее время ожидания на рассчитанное возникновение событий в классе.

  • max_latency

    Максимальное время ожидания рассчитанных возникновений событий в классе.

24.4.3.50. Представления waits_by_host_by_latency и x$waits_by_host_by_latency

Эти представления суммируют ожидания событий, сгруппированные хостом и случаем. По умолчанию строки сортированы по хосту и убыванию полного времени ожидания. Проигнорированы неактивные события.

У представлений waits_by_host_by_latency и x$waits_by_host_by_latency есть эти столбцы:

  • host

    Хост, с которого произошло соединение.

  • event

    Имя событий.

  • total

    Общее количество возникновений случая для хоста.

  • total_latency

    Общее время ожидания рассчитанных возникновений случая для хоста.

  • avg_latency

    Среднее время ожидания на рассчитанное возникновение случая для хоста.

  • max_latency

    Максимальное время ожидания рассчитанных возникновений случая для хоста.

24.4.3.51. Представления waits_by_user_by_latency и x$waits_by_user_by_latency

Эти представления суммируют ожидающие события, сгруппированные по пользователю и случаю. По умолчанию строки сортированы по пользователю и убыванию полного времени ожидания. Проигнорированы неактивные события.

У представлений waits_by_user_by_latency и x$waits_by_user_by_latency есть эти столбцы:

  • user

    Пользователь, связанный с соединением.

  • event

    Имя событий.

  • total

    Общее количество возникновений случая для пользователя.

  • total_latency

    Общее время ожидания рассчитанных возникновений случая для пользователя.

  • avg_latency

    Среднее время ожидания на рассчитанное возникновение случая для пользователя.

  • max_latency

    Максимальное время ожидания рассчитанных возникновений случая для пользователя.

24.4.3.52. Представления waits_global_by_latency и x$waits_global_by_latency

Эти представления суммируют ожидающие события, сгруппированные случаем. По умолчанию строки сортированы по убыванию полного времени ожидания. Проигнорированы неактивные события.

У представлений waits_global_by_latency и x$waits_global_by_latency есть эти столбцы:

  • events

    Имя событий.

  • total

    Общее количество возникновений случая.

  • total_latency

    Общее время ожидания рассчитанных возникновений случая.

  • avg_latency

    Среднее время ожидания на рассчитанное возникновение случая.

  • max_latency

    Максимальное время ожидания рассчитанных возникновений случая.

24.4.4. Хранимые процедуры sys Schema

Следующие разделы описывают хранимые процедуры sys schema.

24.4.4.1. Процедура create_synonym_db()

Учитывая имя схемы, эта процедура создает схему синонима, содержащую представления, которые обращаются ко всем таблицам и представлениям в оригинальной схеме. Это может использоваться, например, чтобы создать более короткое имя, которым можно сослаться на схему с длинным именем (такое, как info вместо INFORMATION_SCHEMA).

Параметры
  • in_db_name VARCHAR(64): Название схемы, для которой можно создать синоним.

  • in_synonym VARCHAR(64): Имя для схемы синонима. Эта схема не должна существовать.

Пример
mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| world              |
+--------------------+
mysql> CALL create_synonym_db('INFORMATION_SCHEMA', 'info');
+---------------------------------------+
| summary                               |
+---------------------------------------+
| Created 63 views in the info database |
+---------------------------------------+

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| info               |
| mysql              |
| performance_schema |
| sys                |
| world              |
+--------------------+
mysql> SHOW FULL TABLES FROM info;
+---------------------------------------+------------+
| Tables_in_info                        | Table_type |
+---------------------------------------+------------+
| character_sets                        | VIEW       |
| collation_character_set_applicability | VIEW       |
| collations                            | VIEW       |
| column_privileges                     | VIEW       |
| columns                               | VIEW       |
...

24.4.4.2. Процедура diagnostics()

Создает сообщение о текущем состоянии сервера в диагностических целях.

Эта процедура требует привилегию SUPER, потому что управляет сеансовой переменной sql_log_bin, чтобы отключить двоичное журналирование во время выполнения.

Данные, собранные для diagnostics(), включают эту информацию:

  • Информация из представления metrics (см. раздел 24.4.3.21).

  • Информация от другого соответствующего представления схемы sys.
  • Информация из схемы ndbinfo, если сервер MySQL часть MySQL Cluster.
  • Состояние репликации (ведущее и ведомое устройства).

Некоторые изпредставлений схемы sys вычислены как (дополнительная) начальная буква и значения дельты:

  • Начальное представление это контент представления в начале выполнения diagnostics(). Этот вывод то же самое, как значения запуска, используемые для представления дельты. Начальное представление включено, если опция diagnostics.include_raw ON.

  • Полное представление это контент представления в конце diagnostics(). Этот вывод то же самое, как последние значения, используемые для представления дельты. Полное представление всегда включается.
  • Представление дельты различие от начала до конца выполнения процедуры. Минимальные и максимальные значения это минимальные и максимальные значения из представления в конце, соответственно. Они не обязательно отражают минимальные и максимальные значения в проверенный период. За исключением metrics, дельта вычислена только между первыми и последними выводами.

Параметры
  • in_max_runtime INT UNSIGNED: Максимальное время сбора данных в секундах. Использование NULL собирает данные для значения по умолчанию в 60 секунд. Иначе используйте значение больше 0.

  • in_interval INT UNSIGNED: Время сна между сборами данных в секундах. Использование NULL предписывает спать по умолчанию 30 секунд. Иначе используйте значение больше 0.
  • in_auto_config ENUM('current', 'medium', 'full'): Конфигурация Performance Schema. Разрешенные значения:

    • current: Используйте текущий инструмент и потребительские настройки.

    • medium: Включить некоторые инструменты и потребители.
    • full: Включить все инструменты и потребителей.

    Чем больше инструментов и потребителей включены, тем больше воздействия на работу сервера MySQL. Будьте осторожны с настройкой medium и особенно с full, которая оказывает большое исполнительное влияние.

    Использование medium или full требует привилегии SUPER.

    Если установка не current, текущие настройки восстановлены в конце процедуры.

Опции

Работа diagnostics() может быть изменена, используя следующие параметры конфигурации или их соответствующие определяемые пользователем переменные (см. раздел 24.4.2.1):

  • debug, @sys.debug.

    Если эта опция ON, производится вывод отладки. Значение по умолчанию OFF.

  • diagnostics.allow_i_s_tables, @sys.diagnostics.allow_i_s_tables.

    Если эта опция ON, процедуре diagnostics() разрешают выполнить сканирование таблицы INFORMATION_SCHEMA.TABLES. Это может быть долго, если есть много таблиц. Значение по умолчанию OFF.

  • diagnostics.include_raw, @sys.diagnostics.include_raw.

    Если эта опция ON, вывод процедуры diagnostics() включает сырой вывод из запросов к представлению metrics. Значение по умолчанию OFF.

  • statement_truncate_len, @sys.statement_truncate_len.

    Максимальная длина запросов, возвращенных функцией format_statement(). Более длинные запросы являются усеченными к этой длине. Значение по умолчанию 64.

Пример

Создайте отчет о диагностике, который запускает итерацию каждые 30 секунд и работает в течение самое большее 120 секунд, используя текущие настройки Performance Schema:

mysql> CALL diagnostics(120, 30, 'current');
Чтобы получить вывод из процедуры diagnostics() в файл, используйте команды клиента mysql teefilename и notee (см. раздел 5.5.1.2):
mysql> tee diag.out;
mysql> CALL diagnostics(120, 30, 'current');
mysql> notee;

24.4.4.3. Процедура execute_prepared_stmt()

Учитывая запрос SQL как строку, выполняет его как готовый запрос. Готовый запрос освобожден после выполнения, таким образом, это не подвергается повторному использованию. Таким образом, эта процедура полезна прежде всего для выполнения динамических запросов на одноразовой основе.

Эта процедура использует sys_execute_prepared_stmt как имя готового запроса. Если это имя запроса существует, когда процедуру вызывают, его предыдущий контент разрушен.

Параметры
  • in_query LONGTEXT CHARACTER SET utf8: Строка запроса, чтобы выполнить.

Опции

execute_prepared_stmt() может быть изменена, используя следующие параметры конфигурации или их соответствующие определяемые пользователем переменные (см. раздел 24.4.2.1):

  • debug, @sys.debug.

    Если эта опция ON, производится вывод отладки. Значение по умолчанию OFF.

Пример
mysql> CALL execute_prepared_stmt('SELECT COUNT(*) FROM mysql.user');
+----------+
| COUNT(*) |
+----------+
|   15     |
+----------+

24.4.4.4. Процедура ps_setup_disable_background_threads()

Отключает инструментовку Performance Schema для всех фоновых потоков. Производит набор результатов, указывающий, сколько фоновых потоков было отключено. Уже отключенные потоки не считаются.

Параметры

Нет.

Пример
mysql> CALL ps_setup_disable_background_threads();
+--------------------------------+
| summary                        |
+--------------------------------+
| Disabled 24 background threads |
+--------------------------------+

24.4.4.5. Процедура ps_setup_disable_consumer()

Отключает потребителей Performance Schema с именами, которые содержит параметр. Производит набор результатов, указывающий, сколько потребителей было отключено. Уже отключенные потребители не считаются.

Параметры
  • consumer VARCHAR(128): Значение перечисляет потребительские имена, которые идентифицированы при использовании %consumer% как операнда для LIKE.

    Значение '' соответствует всем потребителям.

Пример

Отключить всех потребителей запроса:

mysql> CALL ps_setup_disable_consumer('statement');
+----------------------+
| summary              |
+----------------------+
| Disabled 4 consumers |
+----------------------+

24.4.4.6. Процедура ps_setup_disable_instrument()

Отключает инструменты Performance Schema с именами, которые содержит параметр. Производит набор результатов, указывающий, сколько инструментов было отключено. Уже отключенные инструменты не считаются.

Параметры
  • in_pattern VARCHAR(128): Значение перечисляет имена, которые идентифицированы при использовании %in_pattern% как операнда для LIKE. Значение '' соответствует всем инструментам.

Пример

Отключите определенный инструмент:

mysql> CALL ps_setup_disable_instrument('wait/lock/metadata/sql/mdl');
+-----------------------+
| summary               |
+-----------------------+
| Disabled 1 instrument |
+-----------------------+
Отключите все mutex инструменты:
mysql> CALL ps_setup_disable_instrument('mutex');
+--------------------------+
| summary                  |
+--------------------------+
| Disabled 177 instruments |
+--------------------------+

24.4.4.7. Процедура ps_setup_disable_thread()

Учитывая идентификатор соединения, отключает инструментовку Performance Schema для потока. Производит набор результатов, указывающий, сколько потоков было отключено. Уже отключенные потоки не считаются.

Параметры
  • in_connection_id BIGINT: Идентификатор соединения. Это идентификатор соединения из столбца PROCESSLIST_ID таблицы Performance Schema threads или столбца Id вывода SHOW PROCESSLIST.

Пример

Отключите определенное соединение по его ID:

mysql> CALL ps_setup_disable_thread(225);
+-------------------+
| summary           |
+-------------------+
| Disabled 1 thread |
+-------------------+
Отключите текущее соединение:
mysql> CALL ps_setup_disable_thread(CONNECTION_ID());
+-------------------+
| summary           |
+-------------------+
| Disabled 1 thread |
+-------------------+

24.4.4.8. Процедура ps_setup_enable_background_threads()

Включает инструментовку Performance Schema для всех фоновых потоков. Производит набор результатов, указывающий, сколько фоновых потоков было включено. Уже включенные потоки не считаются.

Параметры

Нет.

Пример
mysql> CALL ps_setup_enable_background_threads();
+-------------------------------+
| summary                       |
+-------------------------------+
| Enabled 24 background threads |
+-------------------------------+

24.4.4.9. Процедура ps_setup_enable_consumer()

Включает потребителей Performance Schema с именами, которые содержит параметр. Производит набор результатов, указывающий, сколько потребителей включились. Уже включенные потребители не считаются.

Параметры
  • consumer VARCHAR(128): Значение перечисляет имена, которые идентифицированы при использовании %consumer% как операнд для LIKE. Значение '' соответствует всем потребителям.

Пример

Включите всех потребителей:

mysql> CALL ps_setup_enable_consumer('statement');
+---------------------+
| summary             |
+---------------------+
| Enabled 4 consumers |
+---------------------+

24.4.4.10. Процедура ps_setup_enable_instrument()

Включает инструменты Performance Schema с именами, которые содержит параметр. Производит набор результатов, указывающий, сколько инструментов было включено. Уже включенные инструменты не считаются.

Параметры
  • in_pattern VARCHAR(128): Значение перечисляет имена, которые идентифицированы при использовании %in_pattern% как операнд для LIKE. Значение '' соответствует всем инструментам.

Пример

Включите определенный инструмент:

mysql> CALL ps_setup_enable_instrument('wait/lock/metadata/sql/mdl');
+----------------------+
| summary              |
+----------------------+
| Enabled 1 instrument |
+----------------------+
Включите все mutex инструменты:
mysql> CALL ps_setup_enable_instrument('mutex');
+-------------------------+
| summary                 |
+-------------------------+
| Enabled 177 instruments |
+-------------------------+

24.4.4.11. Процедура ps_setup_enable_thread()

Учитывая идентификатор соединения, включает инструментовку Performance Schema для потока. Производит набор результатов, указывающий, сколько потоков было включено. Уже включенные потоки не считаются.

Параметры
  • in_connection_id BIGINT: Идентификатор соединения. Это ID соединения как в столбце PROCESSLIST_ID таблицы Performance Schema threads или столбце Id вывода SHOW PROCESSLIST.

Пример

Включите определенное ID соединение:

mysql> CALL ps_setup_enable_thread(225);
+------------------+
| summary          |
+------------------+
| Enabled 1 thread |
+------------------+
Включите текущее соединение:
mysql> CALL ps_setup_enable_thread(CONNECTION_ID());
+------------------+
| summary|
+------------------+
| Enabled 1 thread |
+------------------+

24.4.4.12. Процедура ps_setup_reload_saved()

Перезагружает конфигурацию Performance Schema, сохраненную ранее в пределах того же самого использования сеанса с помощью ps_setup_save(). Для получения дополнительной информации см. описание ps_setup_save().

Эта процедура требует привилегии SUPER, потому что это управляет сеансовой перменной sql_log_bin, чтобы отключить двоичное журналирование во время выполнения.

Параметры

Нет.

24.4.4.13. Процедура ps_setup_reset_to_default()

Сбрасывает конфигурацию Performance Schema к ее настройкам по умолчанию.

Параметры
  • in_verbose BOOLEAN: Вывести ли на экран информацию о каждом этапе во время выполнения процедуры. Это включает выполненные запросы SQL.

Пример
mysql> CALL ps_setup_reset_to_default(TRUE)\G
*************************** 1. row ***************************
status: Resetting: setup_actors
DELETE
FROM performance_schema.setup_actors
WHERE NOT (HOST = '%' AND USER = '%' AND ROLE = '%')

*************************** 1. row ***************************
status: Resetting: setup_actors
INSERT IGNORE INTO performance_schema.setup_actors
VALUES ('%', '%', '%')
...

24.4.4.14. Процедура ps_setup_save()

Сохраняет текущую конфигурацию Performance Schema. Это позволяет Вам изменить конфигурацию временно для отладки или других целей, затем восстановить это в предыдущее состояние, вызывая ps_setup_reload_saved() .

Чтобы предотвратить другие одновременные требования сохранить конфигурацию, ps_setup_save() приобретает блокировку sys.ps_setup_save вызовом функции GET_LOCK(). ps_setup_save() берет параметр тайм-аута, чтобы указать, сколько секунд ждать, если блокировка уже существует (это указывает, что у некоторого другого сеанса есть сохраненная конфигурация). Если тайм-аут истекает, не получая блокировку, ps_setup_save() терпит неудачу.

Это предназначено для вызова ps_setup_reload_saved() позже в пределах того же самого сеанса, что и ps_setup_save(), потому что конфигурация сохранена в таблицы TEMPORARY. ps_setup_save() удаляет временные таблицы и выпускает блокировку. Если Вы заканчиваете свой сеанс без вызова ps_setup_save(), таблицы и блокировка исчезают автоматически.

Эта процедура требует привилегии SUPER, потому что это управляет сеансовой перменной sql_log_bin, чтобы отключить двоичное журналирование во время выполнения.

Параметры
  • in_timeout INT: Сколько секунд ждать, чтобы получить блокировку sys.ps_setup_save. Отрицательное значение тайм-аута означает бесконечный тайм-аут.

Пример
mysql> CALL ps_setup_save(10);
... make Performance Schema configuration changes ...
mysql> CALL ps_setup_reload_saved();

24.4.4.15. Процедура ps_setup_show_disabled()

Показывает все в настоящее время отключенные конфигурации Performance Schema.

Параметры
  • in_show_instruments BOOLEAN: Вывести ли на экран отключенные инструменты. Это может быть длинным списком.

  • in_show_threads BOOLEAN: Вывести ли на экран отключенные потоки.

Пример
mysql> CALL ps_setup_show_disabled(TRUE, TRUE);
+----------------------------+
| performance_schema_enabled |
+----------------------------+
|  1                         |
+----------------------------+
+---------------+
| enabled_users |
+---------------+
| '%'@'%'       |
+---------------+
+-------------+----------------------+---------+-------+
| object_type | objects              | enabled | timed |
+-------------+----------------------+---------+-------+
| EVENT       | mysql.%              | NO      | NO    |
| EVENT       | performance_schema.% | NO      | NO    |
| EVENT       | information_schema.% | NO      | NO    |
| FUNCTION    | mysql.%              | NO      | NO    |
| FUNCTION    | performance_schema.% | NO      | NO    |
| FUNCTION    | information_schema.% | NO      | NO    |
| PROCEDURE   | mysql.%              | NO      | NO    |
| PROCEDURE   | performance_schema.% | NO      | NO    |
| PROCEDURE   | information_schema.% | NO      | NO    |
| TABLE       | mysql.%              | NO      | NO    |
| TABLE       | performance_schema.% | NO      | NO    |
| TABLE       | information_schema.% | NO      | NO    |
| TRIGGER     | mysql.%              | NO      | NO    |
| TRIGGER     | performance_schema.% | NO      | NO    |
| TRIGGER     | information_schema.% | NO      | NO    |
+-------------+----------------------+---------+-------+
...

24.4.4.16. Процедура ps_setup_show_disabled_consumers()

Показать всех в настоящее время отключенных потребителей Performance Schema.

Параметры

Нет.

Пример
mysql> CALL ps_setup_show_disabled_consumers();
+----------------------------------+
| disabled_consumers               |
+----------------------------------+
| events_stages_current            |
| events_stages_history            |
| events_stages_history_long       |
| events_statements_history        |
| events_statements_history_long   |
| events_transactions_history      |
| events_transactions_history_long |
| events_waits_current             |
| events_waits_history             |
| events_waits_history_long        |
+----------------------------------+

24.4.4.17. Процедура ps_setup_show_disabled_instruments()

Показывает все в настоящее время отключенные инструменты Performance Schema. Это может быть длинным списком.

Параметры

Нет.

Пример
mysql> CALL ps_setup_show_disabled_instruments()\G
*************************** 1. row ***************************
disabled_instruments: wait/synch/mutex/sql/TC_LOG_MMAP::LOCK_tc
 timed: NO
*************************** 2. row ***************************
disabled_instruments: wait/synch/mutex/sql/LOCK_des_key_file
 timed: NO
*************************** 3. row ***************************
disabled_instruments: wait/synch/mutex/sql/MYSQL_BIN_LOG::LOCK_commit
 timed: NO
...

24.4.4.18. Процедура ps_setup_show_enabled()

Показывает все в настоящее время включенные конфигурации Performance Schema.

Параметры
  • in_show_instruments BOOLEAN: Вывести ли на экран отключенные инструменты. Это может быть длинным списком.

  • in_show_threads BOOLEAN: Вывести ли на экран отключенные потоки.

Пример
mysql> CALL ps_setup_show_enabled(FALSE, FALSE);
+----------------------------+
| performance_schema_enabled |
+----------------------------+
|  1                         |
+----------------------------+
1 row in set (0.00 sec)

+---------------+
| enabled_users |
+---------------+
| '%'@'%'       |
+---------------+
1 row in set (0.00 sec)

+-------------+---------+---------+-------+
| object_type | objects | enabled | timed |
+-------------+---------+---------+-------+
| EVENT       | %.%     | YES     | YES   |
| FUNCTION    | %.%     | YES     | YES   |
| PROCEDURE   | %.%     | YES     | YES   |
| TABLE       | %.%     | YES     | YES   |
| TRIGGER     | %.%     | YES     | YES   |
+-------------+---------+---------+-------+
5 rows in set (0.01 sec)

+-----------------------------+
| enabled_consumers           |
+-----------------------------+
| events_statements_current   |
| events_transactions_current |
| global_instrumentation      |
| thread_instrumentation      |
| statements_digest           |
+-----------------------------+

24.4.4.19. Процедура ps_setup_show_enabled_consumers()

Показать всех в настоящее время включенных потребителей Performance Schema.

Параметры

Нет.

Пример
mysql> CALL ps_setup_show_enabled_consumers();
+-----------------------------+
| enabled_consumers           |
+-----------------------------+
| events_statements_current   |
| events_transactions_current |
| global_instrumentation      |
| thread_instrumentation      |
| statements_digest           |
+-----------------------------+

24.4.4.20. Процедура ps_setup_show_enabled_instruments()

Показывает все в настоящее время включенные инструменты Performance Schema. Это может быть длинным списком.

Параметры

Нет.

Пример
mysql> CALL ps_setup_show_enabled_instruments()\G
*************************** 1. row ***************************
enabled_instruments: wait/io/file/sql/map
timed: YES
*************************** 2. row ***************************
enabled_instruments: wait/io/file/sql/binlog
timed: YES
*************************** 3. row ***************************
enabled_instruments: wait/io/file/sql/binlog_cache
timed: YES
...

24.4.4.21. Процедура ps_statement_avg_latency_histogram()

Выводит на экран текстовый график гистограммы средних значений времени ожидания для всех нормализованных запросов, прослеженных в пределах таблицы Performance Schema events_statements_summary_by_digest.

Эта процедура может использоваться, чтобы вывести на экран очень высокоуровневое изображение распределения времени ожидания запросов, работающих в пределах этого экземпляра MySQL.

Параметры

Нет.

Пример

Гистограмма выведена в модулях запросов. Например, * = 2 units в гистограмме означает, что каждый символ * представляет 2 запроса.

mysql> CALL ps_statement_avg_latency_histogram()\G
*************************** 1. row ***************************
Performance Schema Statement Digest Average Latency Histogram:

  . = 1 unit
  * = 2 units
  # = 3 units

(0 - 66ms) 88  | #############################
(66 - 133ms)   14  | ..............
(133 - 199ms)  4   | ....
(199 - 265ms)  5   | **
(265 - 332ms)  1   | .
(332 - 398ms)  0   |
(398 - 464ms)  1   | .
(464 - 531ms)  0   |
(531 - 597ms)  0   |
(597 - 663ms)  0   |
(663 - 730ms)  0   |
(730 - 796ms)  0   |
(796 - 863ms)  0   |
(863 - 929ms)  0   |
(929 - 995ms)  0   |
(995 - 1062ms) 0   |

  Total Statements: 114; Buckets: 16; Bucket Size: 66 ms;

24.4.4.22. Процедура ps_trace_statement_digest()

Трассирует все инструменты Performance Schema для определенного обзора запроса.

Если Вы находите запрос интересным в пределах таблицы Performance Schema events_statements_summary_by_digest, определите значение MD5 столбца DIGEST этой процедуре и укажите продолжительность и интервал. Результат: сообщение обо всей статистике, прослеженной в пределах Performance Schema для этого обзора в интервале.

Процедура также пытается выполнить EXPLAIN для самого длинного рабочего примера обзора во время интервала. Эта попытка могла бы потерпеть неудачу, потому что Performance Schema усекает длинные значения SQL_TEXT. Следовательно, EXPLAIN потерпит неудачу.

Эта процедура требует привилегии SUPER, потому что это управляет сеансовой переменной sql_log_bin, чтобы отключить двоичное журналирование во время выполнения.

Параметры
  • in_digest VARCHAR(32): Идентификатор обзора запроса, чтобы проанализировать.

  • in_runtime INT: Сколько времени выполнить анализ в секундах.
  • in_interval DECIMAL(2,2): Аналитический интервал в секундах (может быть дробным), в котором можно попытаться взять снимки.
  • in_start_fresh BOOLEAN: Усечь ли таблицы Performance Schema events_statements_history_long и events_stages_history_long перед запуском.
  • in_auto_enable BOOLEAN: Включить ли автоматически необходимых потребителей.

Пример
mysql> CALL ps_trace_statement_digest('891ec6860f98ba46d89dd20b0c03652c', 10, 0.1, TRUE, TRUE);
+--------------------+
| SUMMARY STATISTICS |
+--------------------+
| SUMMARY STATISTICS |
+--------------------+
1 row in set (9.11 sec)

+------------+-----------+-----------+-----------+---------------+------------+------------+
| executions | exec_time | lock_time | rows_sent | rows_examined | tmp_tables | full_scans |
+------------+-----------+-----------+-----------+---------------+------------+------------+
| 21         | 4.11 ms   | 2.00 ms   | 0         |  21           | 0          | 0          |
+------------+-----------+-----------+-----------+---------------+------------+------------+
1 row in set (9.11 sec)

+------------------------------------------+-------+-----------+
| event_name                               | count | latency   |
+------------------------------------------+-------+-----------+
| stage/sql/checking query cache for query | 16    | 724.37 us |
| stage/sql/statistics                     | 16    | 546.92 us |
| stage/sql/freeing items                  | 18    | 520.11 us |
| stage/sql/init                           | 51    | 466.80 us |
...
| stage/sql/cleaning up                    | 18    | 11.92 us  |
| stage/sql/executing                      | 16    | 6.95 us   |
+------------------------------------------+-------+-----------+
17 rows in set (9.12 sec)

+---------------------------+
| LONGEST RUNNING STATEMENT |
+---------------------------+
| LONGEST RUNNING STATEMENT |
+---------------------------+
1 row in set (9.16 sec)

+-----------+-----------+-----------+-----------+---------------+------------+-----------+
| thread_id | exec_time | lock_time | rows_sent | rows_examined | tmp_tables | full_scan |
+-----------+-----------+-----------+-----------+---------------+------------+-----------+
|166646     | 618.43 us | 1.00 ms   | 0         |   1           | 0          | 0         |
+-----------+-----------+-----------+-----------+---------------+------------+-----------+
1 row in set (9.16 sec)

# Truncated for clarity...
+-----------------------------------------------------------------+
| sql_text                                                        |
+-----------------------------------------------------------------+
| select hibeventhe0_.id as id1382_, hibeventhe0_.createdTime ... |
+-----------------------------------------------------------------+
1 row in set (9.17 sec)

+------------------------------------------+-----------+
| event_name                               | latency   |
+------------------------------------------+-----------+
| stage/sql/init                           | 8.61 us   |
| stage/sql/Waiting for query cache lock   | 453.23 us |
| stage/sql/init                           | 331.07 ns |
| stage/sql/checking query cache for query | 43.04 us  |
...
| stage/sql/freeing items                  | 30.46 us  |
| stage/sql/cleaning up                    | 662.13 ns |
+------------------------------------------+-----------+
18 rows in set (9.23 sec)

+----+-------------+--------------+-------+---------------+-----------+---------+-------------+------+-------+
| id | select_type | table        | type  | possible_keys | key       | key_len | ref         | rows | Extra |
+----+-------------+--------------+-------+---------------+-----------+---------+-------------+------+-------+
|  1 | SIMPLE      | hibeventhe0_ | const | fixedTime     | fixedTime | 775     | const,const | 1    | NULL  |
+----+-------------+--------------+-------+---------------+-----------+---------+-------------+------+-------+
1 row in set (9.27 sec)

Query OK, 0 rows affected (9.28 sec)

24.4.4.23. Процедура ps_trace_thread()

Выводит все данные Performance Schema для инструментованного потока в отформатированный файл графика .dot (для языка описания графика DOT). Каждый набор результатов, возвращенный из процедуры, должен использоваться для полного графика.

Эта процедура требует привилегии SUPER, потому что это управляет сеансовой переменной sql_log_bin, чтобы отключить двоичное журналирование во время выполнения.

Параметры
  • in_thread_id INT: Поток, чтобы проследить.

  • in_outfile VARCHAR(255): Имя выходного файла .dot.
  • in_max_runtime DECIMAL(20,2): Максимальное количество секунд (может быть дробным), чтобы собрать данные. Используйте NULL для значения по умолчанию в 60 секунд.
  • in_interval DECIMAL(20,2): Число секунд (может быть дробным), которые спать между сборами данных. Используйте NULL для значения по умолчанию в 1 секунду.
  • in_start_fresh BOOLEAN: Сбросить ли все данные Performance Schema перед рассмотрением.
  • in_auto_setup BOOLEAN: Запретить ли все другие потоки и включить ли все инструменты и потребители. Это также сбрасывает настройки в конце выполнения.
  • in_debug BOOLEAN: Включать ли информацию file:lineno в график.

Пример
mysql> CALL ps_trace_thread(25, CONCAT('/tmp/stack-', REPLACE(NOW(),
               ' ', '-'), '.dot'), NULL, NULL, TRUE, TRUE, TRUE);
+-------------------+
| summary           |
+-------------------+
| Disabled 1 thread |
+-------------------+
1 row in set (0.00 sec)

+---------------------------------------------+
| Info                                        |
+---------------------------------------------+
| Data collection starting for THREAD_ID = 25 |
+---------------------------------------------+
1 row in set (0.03 sec)

+-----------------------------------------------------------+
| Info                                                      |
+-----------------------------------------------------------+
| Stack trace written to /tmp/stack-2014-02-16-21:18:41.dot |
+-----------------------------------------------------------+
1 row in set (60.07 sec)

+-------------------------------------------------------------------+
| Convert to PDF                                                    |
+-------------------------------------------------------------------+
| dot -Tpdf -o /tmp/stack_25.pdf /tmp/stack-2014-02-16-21:18:41.dot |
+-------------------------------------------------------------------+
1 row in set (60.07 sec)

+-------------------------------------------------------------------+
| Convert to PNG                                                    |
+-------------------------------------------------------------------+
| dot -Tpng -o /tmp/stack_25.png /tmp/stack-2014-02-16-21:18:41.dot |
+-------------------------------------------------------------------+
1 row in set (60.07 sec)

+------------------+
| summary          |
+------------------+
| Enabled 1 thread |
+------------------+
1 row in set (60.32 sec)

24.4.4.24. Процедура ps_truncate_all_tables()

Усекает все сводные таблицы Performance Schema, сбрасывая всю соединенную инструментовку как снимок. Производит набор результатов, указывающий, сколько таблиц было усечено.

Параметры
  • in_verbose BOOLEAN: Вывести ли на экран каждый запрос TRUNCATE TABLE прежде, чем выполнить это.

Пример
mysql> CALL ps_truncate_all_tables(FALSE);
+---------------------+
| summary             |
+---------------------+
| Truncated 44 tables |
+---------------------+

24.4.4.25. Процедура statement_performance_analyzer()

Создает сообщение о запросах, работающих на сервере. Представления вычислены, базируясь на полной деятельности и/или деятельности дельты.

Эта процедура требует привилегии SUPER, потому что это управляет сеансовой переменной sql_log_bin, чтобы отключить двоичное журналирование во время выполнения.

Параметры
  • in_action ENUM('snapshot', 'overall', 'delta', 'create_tmp', 'create_table', 'save', 'cleanup'): Действие. Эти значения разрешены:

    • snapshot: Сохранить снимок. Значение по умолчанию должно сделать снимок текущего контента таблицы Performance Schema events_statements_summary_by_digest. Устанавливая in_table, это можно перезаписать, чтобы скопировать контент указанной таблицы. Снимок сохранен во временной таблице tmp_digests sys schema.

    • overall: Произвести анализ, основанный на контенте таблицы, определенной in_table. Для полного анализа in_table может быть NOW(), чтобы использовать новый снимок. Это перезаписывает существующий снимок. Используйте NULL для in_table, чтобы использовать существующий снимок. Если in_table NULL и никакой снимок не существует, новый снимок создается. Параметр in_views и опция statement_performance_analyzer.limit влияют на эту процедуру.
    • delta: Произвести анализ дельты. Дельта вычислена между ссылочной таблицей, определенной in_table, и снимком, который должен существовать. Это действие использует временную таблицу tmp_digests_delta sys schema. Параметр in_views и опция statement_performance_analyzer.limit влияют на эту процедуру.
    • create_table: Составить регулярную таблицу, подходящую для того, чтобы сохранить снимок для более позднего использования (например, для того, чтобы вычислить дельты).
    • create_tmp: Составить временную таблицу, подходящую для того, чтобы сохранить снимок для более позднего использования (например, для того, чтобы вычислить дельты).
    • save: Сохранить снимок в таблице, определенной in_table. Таблица должна существовать и иметь правильную структуру. Если никакой снимок не существует, новый снимок создается.
    • cleanup: Удалить временные таблицы, используемые для снимка и дельты.

  • in_table VARCHAR(129): Табличный параметр, используемый для некоторых из действий, определенных параметром in_action. Используйте формат db_name.tbl_name или tbl_name не используя обратный апостроф (`). Точка (.) не поддержана в именах базы данных и таблиц.

    Значение in_table для каждого in_action детализировано в описании in_action.

  • in_views SET ('with_runtimes_in_95th_percentile', 'analysis', 'with_errors_or_warnings', 'with_full_table_scans', 'with_sorting', 'with_temp_tables', 'custom'): Какие представления включать. Этот параметр SET, таким образом, это может содержать много имен представлений, отделенных запятыми. Значение по умолчанию должно включать все представления, кроме custom. Следующие значения разрешены:

Опции

Работа statement_performance_analyzer() может быть изменена, используя следующие параметры конфигурации или их соответствующие определяемые пользователем переменные (см. раздел 24.4.2.1):

  • debug, @sys.debug.

    Если эта опция ON, произвести вывод отладки. Значение по умолчанию OFF.

  • statement_performance_analyzer.limit, @sys.statement_performance_analyzer.limit.

    Максимальное количество строк, чтобы возвратить для представлений, у которых нет никакого встроенного предела. Значение по умолчанию 100.

  • statement_performance_analyzer.view, @sys.statement_performance_analyzer.view.

    Пользовательский запрос или представление, которое будет использоваться. Если значение опции содержит пробел, оно интерпретируется как запрос. Иначе это должно быть название существующего представления, которое запрашивает таблицу Performance Schema events_statements_summary_by_digest. Не может быть никакого LIMIT в запросе или определение представления, если параметр конфигурации statement_performance_analyzer.limit больше 0. Определяя представление, используйте тот же самый формат, что касается in_table. Значение по умолчанию NULL (никакого пользовательского определенного представления).

Пример

Создать отчет с запросами в 95th percentile, начиная с последнего усечения events_statements_summary_by_digest с одноминутным периодом дельты:

  1. Составьте временную таблицу, чтобы сохранить начальный снимок.

  2. Создайте начальный снимок.
  3. Сохраните начальный снимок во временной таблице.
  4. Ждите одну минуту.
  5. Создайте новый снимок.
  6. Выполните анализ, основанный на новом снимке.
  7. Выполните анализ, основанный на дельте между начальным и новым снимками.

mysql> CALL statement_performance_analyzer('create_tmp',
               'mydb.tmp_digests_ini', NULL);
Query OK, 0 rows affected (0.08 sec)

mysql> CALL statement_performance_analyzer('snapshot', NULL, NULL);
Query OK, 0 rows affected (0.02 sec)

mysql> CALL statement_performance_analyzer('save', 'mydb.tmp_digests_ini',
               NULL);
Query OK, 0 rows affected (0.00 sec)

mysql> DO SLEEP(60);
Query OK, 0 rows affected (1 min 0.00 sec)

mysql> CALL statement_performance_analyzer('snapshot', NULL, NULL);
Query OK, 0 rows affected (0.02 sec)

mysql> CALL statement_performance_analyzer('overall', NULL,
               'with_runtimes_in_95th_percentile');
+-----------------------------------------+
| Next Output                             |
+-----------------------------------------+
| Queries with Runtime in 95th Percentile |
+-----------------------------------------+
1 row in set (0.05 sec)
...

mysql> CALL statement_performance_analyzer('delta', 'mydb.tmp_digests_ini', 'with_runtimes_in_95th_percentile');
+-----------------------------------------+
| Next Output                             |
+-----------------------------------------+
| Queries with Runtime in 95th Percentile |
+-----------------------------------------+
1 row in set (0.03 sec)
...
Создайте полное сообщение о запросах 95th percentile и 10 лучших запросах с полным сканированием таблицы:
mysql> CALL statement_performance_analyzer('snapshot', NULL, NULL);
Query OK, 0 rows affected (0.01 sec)

mysql> SET @sys.statement_performance_analyzer.limit = 10;
Query OK, 0 rows affected (0.00 sec)

mysql> CALL statement_performance_analyzer('overall', NULL,
               'with_runtimes_in_95th_percentile,with_full_table_scans');
+-----------------------------------------+
| Next Output                             |
+-----------------------------------------+
| Queries with Runtime in 95th Percentile |
+-----------------------------------------+
1 row in set (0.01 sec)
...
+-------------------------------------+
| Next Output                         |
+-------------------------------------+
| Top 10 Queries with Full Table Scan |
+-------------------------------------+
1 row in set (0.09 sec)
...
Используйте пользовательское представление, показывая лучшие 10 запросов, сортированных полным временем выполнения, освежая представление каждую минуту, используя команду watch в Linux:
mysql> CREATE OR REPLACE VIEW mydb.my_statements AS
    -> SELECT sys.format_statement(DIGEST_TEXT) AS query,
    ->        SCHEMA_NAME AS db, COUNT_STAR AS exec_count,
    ->        sys.format_time(SUM_TIMER_WAIT) AS total_latency,
    ->        sys.format_time(AVG_TIMER_WAIT) AS avg_latency,
    ->        ROUND(IFNULL(SUM_ROWS_SENT / NULLIF(COUNT_STAR, 0), 0)) AS
    ->        rows_sent_avg,
    ->        ROUND(IFNULL(SUM_ROWS_EXAMINED / NULLIF(COUNT_STAR, 0), 0))
    ->        AS rows_examined_avg,
    ->        ROUND(IFNULL(SUM_ROWS_AFFECTED / NULLIF(COUNT_STAR, 0), 0))
    ->        AS rows_affected_avg, DIGEST AS digest
    ->        FROM performance_schema.events_statements_summary_by_digest
    ->        ORDER BY SUM_TIMER_WAIT DESC;
Query OK, 0 rows affected (0.01 sec)

mysql> CALL statement_performance_analyzer('create_table',
               'mydb.digests_prev', NULL);
Query OK, 0 rows affected (0.10 sec)

shell> watch -n 60 "mysql sys --table -e \"
     > SET @sys.statement_performance_analyzer.view = 'mydb.my_statements';
     > SET @sys.statement_performance_analyzer.limit = 10;
     > CALL statement_performance_analyzer('snapshot', NULL, NULL);
     > CALL statement_performance_analyzer('delta', 'mydb.digests_prev', 'custom');
     > CALL statement_performance_analyzer('save', 'mydb.digests_prev', NULL);
     > \""

Every 60.0s: mysql sys --table -e "...  Mon Dec 22 10:58:51 2014
+----------------------------------+
| Next Output                      |
+----------------------------------+
| Top 10 Queries Using Custom View |
+----------------------------------+
+-------+----+------------+---------------+-------------+---------------+-------------------+-------------------+--------+
| query | db | exec_count | total_latency | avg_latency | rows_sent_avg | rows_examined_avg | rows_affected_avg | digest |
+-------+----+------------+---------------+-------------+---------------+-------------------+-------------------+--------+
...

24.4.4.26. Процедура table_exists()

Тестирует, существует ли данная таблица как регулярная, TEMPORARY или представление. Процедура возвращает тип таблицы в параметре OUT. Если временная и постоянная таблицы существуют с этим именем, вернется TEMPORARY.

Параметры
  • in_db VARCHAR(64): Название базы данных, в которой можно проверить существование таблицы.

  • in_table VARCHAR(64): Название таблицы, чтобы проверить.
  • out_exists ENUM('', 'BASE TABLE', 'VIEW', 'TEMPORARY'): Возвращаемое значение. Это параметр OUT, таким образом, это должна быть переменная, в которую может быть сохранен табличный тип. Когда процедура возвращается, у переменной есть одно из следующих значений, чтобы указать, существует ли таблица:

    • '': Имя таблицы не существует как базовая таблица, TEMPORARY или представление.

    • BASE TABLE: Имя таблицы существует как основная (постоянная) таблица.
    • VIEW: Имя таблицы существует как представление.
    • TEMPORARY: Имя таблицы существует как таблица a TEMPORARY.

Пример
mysql> CREATE DATABASE db1;
Query OK, 1 row affected (0.01 sec)

mysql> USE db1;
Database changed
mysql> CREATE TABLE t1 (id INT PRIMARY KEY);
Query OK, 0 rows affected (0.03 sec)

mysql> CREATE TABLE t2 (id INT PRIMARY KEY);
Query OK, 0 rows affected (0.20 sec)

mysql> CREATE view v_t1 AS SELECT * FROM t1;
Query OK, 0 rows affected (0.02 sec)

mysql> CREATE TEMPORARY TABLE t1 (id INT PRIMARY KEY);
Query OK, 0 rows affected (0.00 sec)

mysql> CALL sys.table_exists('db1', 't1', @exists); SELECT @exists;
Query OK, 0 rows affected (0.01 sec)
+-----------+
| @exists   |
+-----------+
| TEMPORARY |
+-----------+
1 row in set (0.00 sec)

mysql> CALL sys.table_exists('db1', 't2', @exists); SELECT @exists;
Query OK, 0 rows affected (0.02 sec)
+------------+
| @exists    |
+------------+
| BASE TABLE |
+------------+
1 row in set (0.00 sec)

mysql> CALL sys.table_exists('db1', 'v_t1', @exists); SELECT @exists;
Query OK, 0 rows affected (0.02 sec)

+---------+
| @exists |
+---------+
| VIEW    |
+---------+
1 row in set (0.00 sec)

mysql> CALL sys.table_exists('db1', 't3', @exists); SELECT @exists;
Query OK, 0 rows affected (0.00 sec)
+---------+
| @exists |
+---------+
|         |
+---------+
1 row in set (0.00 sec)

24.4.5. Хранимые функции sys Schema

Следующие разделы описывают хранимые функции sys schema.

24.4.5.1. Функция extract_schema_from_file_name()

Учитывая имя пути к файлу, возвращает компонент пути, который представляет имя схемы. Эта функция предполагает, что имя файла находится в пределах каталога схемы. Поэтому это не будет работать с разделением или таблицей, определенной с использованием собственной табличной опции DATA_DIRECTORY.

Эта функция полезна, извлекая информацию о вводе/выводе файла из Performance Schema, которая включает имена пути к файлу. Это обеспечивает удобный способ вывести на экран имена схемы, которые могут быть более легко поняты чем полные пути и могут использоваться в соединениях для имен схемы объекта.

Параметры
  • path VARCHAR(512): Весь путь к файлу с данными, из которого можно извлечь имя схемы.

Возвращаемое значение

VARCHAR(64).

Пример
mysql> SELECT extract_schema_from_file_name('/usr/local/mysql/data/world/City.ibd');
+-----------------------------------------------------------------------+
| extract_schema_from_file_name('/usr/local/mysql/data/world/City.ibd') |
+-----------------------------------------------------------------------+
| world                                                                 |
+-----------------------------------------------------------------------+

24.4.5.2. Функция extract_table_from_file_name()

Учитывая имя пути к файлу, возвращает компонент пути, который представляет имя таблицы.

Эта функция полезна, извлекая информацию о вводе/выводе файла из Performance Schema, которая включает имена пути к файлу. Это обеспечивает удобный способ вывести на экран имена таблиц, которые могут быть более легко поняты чем полные пути, и могут использоваться в соединениях для имен таблиц объекта.

Параметры
  • path VARCHAR(512): Весь путь к файлу с данными, из которого можно извлечь имя таблицы.

Возвращаемое значение

VARCHAR(64).

Пример
mysql> SELECT extract_table_from_file_name('/usr/local/mysql/data/world/City.ibd');
+----------------------------------------------------------------------+
| extract_table_from_file_name('/usr/local/mysql/data/world/City.ibd') |
+----------------------------------------------------------------------+
| City                                                                 |
+----------------------------------------------------------------------+

24.4.5.3. Функция format_bytes()

Учитывая значение в байтах, конвертирует это к удобочитаемому формату и возвращает строку, состоящую из значения и индикатора модулей. В зависимости от размера значения, части модулей: bytes, KiB (kibibytes), MiB (mebibytes), GiB (gibibytes), TiB (tebibytes) или PiB (pebibytes).

Параметры
  • bytes TEXT: Значение байтов для формата.

Возвращаемое значение

TEXT.

Пример
mysql> SELECT format_bytes(512), format_bytes(18446644073709551615);
+-------------------+------------------------------------+
| format_bytes(512) | format_bytes(18446644073709551615) |
+-------------------+------------------------------------+
| 512 bytes         | 16383.91 PiB                       |
+-------------------+------------------------------------+

24.4.5.4. Функция format_path()

Учитывая путь, возвращает измененный путь после замены подпутей, которые соответствуют значениям следующих системных переменных в этом порядке:

datadir
tmpdir
slave_load_tmpdir
innodb_data_home_dir
innodb_log_group_home_dir
innodb_undo_directory
basedir
Значение, которое соответствует значению системной переменной sysvar заменено строкой @@global.sysvar.

Параметры
  • path VARCHAR(512): Путь, чтобы отформатировать.

Возвращаемое значение

VARCHAR(512) CHARACTER SET utf8.

Пример
mysql> SELECT format_path('/usr/local/mysql/data/world/City.ibd');
+-----------------------------------------------------+
| format_path('/usr/local/mysql/data/world/City.ibd') |
+-----------------------------------------------------+
| @@datadir/world/City.ibd                            |
+-----------------------------------------------------+

24.4.5.5. Функция format_statement()

Учитывая строку (обычно представляющей запрос SQL), уменьшает это до длины, данной параметром конфигурации statement_truncate_len, и возвращает результат. Никакое усечение не происходит, если строка короче statement_truncate_len. Иначе средняя часть строки заменена многоточием (...).

Эта функция полезна для форматирования возможно длинных запросов, полученных из таблиц Performance Schema до известной установленной максимальной длины.

Параметры
  • statement LONGTEXT: запрос для форматирования.

Опции

format_statement() может быть изменена, используя следующие параметры конфигурации или их соответствующие определяемые пользователем переменные (см. раздел 24.4.2.1):

  • statement_truncate_len, @sys.statement_truncate_len.

    Максимальная длина запросов, возвращенных функцией format_statement(). Более длинные запросы усечены к этой длине. Значение по умолчанию 64.

Возвращаемое значение

LONGTEXT.

Пример

По умолчанию format_statement() усекает запросы, чтобы они были не больше 64 символов. Установка @sys.statement_truncate_len изменяет длину усечения для текущего сеанса:

mysql> SET @stmt = 'SELECT variable, value, set_time, set_by
                       FROM sys_config';
mysql> SELECT format_statement(@stmt);
+----------------------------------------------------------+
| format_statement(@stmt)                                  |
+----------------------------------------------------------+
| SELECT variable, value, set_time, set_by FROM sys_config |
+----------------------------------------------------------+
mysql> SET @sys.statement_truncate_len = 32;
mysql> SELECT format_statement(@stmt);
+-----------------------------------+
| format_statement(@stmt)           |
+-----------------------------------+
| SELECT variabl ... ROM sys_config |
+-----------------------------------+

24.4.5.6. Функция format_time()

Учитывая время ожидания Performance Schema или время ожидания в пикосекундах, конвертирует это к удобочитаемому формату и возвращает строку, состоящую из значения и индикатора модулей. В зависимости от размера значения, часть модулей ns (nanoseconds), us (microseconds), ms (milliseconds), s (seconds), m (minutes), h (hours), d (days) или w (weeks).

Параметры
  • picoseconds TEXT: Пикосекунды для форматирования.

Возвращаемое значение

TEXT.

Пример
mysql> SELECT format_time(3501), format_time(188732396662000);
+-------------------+------------------------------+
| format_time(3501) | format_time(188732396662000) |
+-------------------+------------------------------+
| 3.50 ns           | 3.15 m                       |
+-------------------+------------------------------+

24.4.5.7. Функция list_add()

Добавляет значение к списку разделенных запятой значений и возвращает результат.

Эта функция и list_drop() могут быть полезны для управления значением таких системных переменных, как sql_mode и optimizer_switch , которым нужен список разделенных запятой значений.

Параметры
  • in_list TEXT: Список, который будет изменен.

  • in_add_value TEXT: Значение, чтобы добавить к списку.

Возвращаемое значение

TEXT.

Пример
mysql> SELECT @@sql_mode;
+----------------------------------------+
| @@sql_mode                             |
+----------------------------------------+
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES |
+----------------------------------------+
mysql> SET @@sql_mode = list_add(@@sql_mode, 'NO_ENGINE_SUBSTITUTION');
mysql> SELECT @@sql_mode;
+---------------------------------------------------------------+
| @@sql_mode                                                    |
+---------------------------------------------------------------+
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
+---------------------------------------------------------------+
mysql> SET @@sql_mode = list_drop(@@sql_mode, 'ONLY_FULL_GROUP_BY');
mysql> SELECT @@sql_mode;
+--------------------------------------------+
| @@sql_mode                                 |
+--------------------------------------------+
| STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+

24.4.5.8. Функция list_drop()

Удаляет значение из списка разделенных запятой значений и возвращает результат. Для получения дополнительной информации см. описание list_add().

Параметры
  • in_list TEXT: Список, который будет изменен.

  • in_drop_value TEXT: Значение, чтобы удалить из списка.

Возвращаемое значение

TEXT.

24.4.5.9. Функция ps_is_account_enabled()

Возвращает YES или NO, чтобы указать, включена ли инструментовка Performance Schema для указанной учетной записи.

Параметры
  • in_host VARCHAR(60): Имя хоста учетной записи.

  • in_user VARCHAR(32): Имя пользователя учетной записи.

Возвращаемое значение

ENUM('YES','NO').

Пример
mysql> SELECT ps_is_account_enabled('localhost', 'root');
+--------------------------------------------+
| ps_is_account_enabled('localhost', 'root') |
+--------------------------------------------+
| YES                                        |
+--------------------------------------------+

24.4.5.10. Функция ps_is_consumer_enabled()

Возвращает YES или NO, чтобы указать, включен ли данный потребитель Performance Schema, или NULL, если параметр не допустимое потребительское имя.

Эта функция составляет потребительскую иерархию, таким образом, потребителя не считают включенным, если все потребители, от которых он зависит, также не включены. Для информации о потребительской иерархии см. раздел 23.2.3.7 .

Параметры
  • in_consumer VARCHAR(64): Имя потребителя, чтобы проверить.

Возвращаемое значение

ENUM('YES','NO').

Пример
mysql> SELECT ps_is_consumer_enabled('thread_instrumentation');
+--------------------------------------------------+
| ps_is_consumer_enabled('thread_instrumentation') |
+--------------------------------------------------+
| YES                                              |
+--------------------------------------------------+

24.4.5.11. The ps_is_instrument_default_enabled()

Возвращает YES или NO, чтобы указать, включен ли данный инструмент Performance Schema по умолчанию.

Параметры
  • in_instrument VARCHAR(128): Название инструмента, чтобы проверить.

Возвращаемое значение

ENUM('YES','NO').

Пример
mysql> SELECT ps_is_instrument_default_enabled('memory/innodb/row_log_buf');
+---------------------------------------------------------------+
| ps_is_instrument_default_enabled('memory/innodb/row_log_buf') |
+---------------------------------------------------------------+
| NO                                                            |
+---------------------------------------------------------------+
mysql> SELECT ps_is_instrument_default_enabled('statement/sql/alter_user');
+--------------------------------------------------------------+
| ps_is_instrument_default_enabled('statement/sql/alter_user') |
+--------------------------------------------------------------+
| YES                                                          |
+--------------------------------------------------------------+

24.4.5.12. Функция ps_is_instrument_default_timed()

Возвращает YES или NO, чтобы указать, рассчитан ли данный инструмент Performance Schema по умолчанию.

Параметры
  • in_instrument VARCHAR(128): Название инструмента, чтобы проверить.

Возвращаемое значение

ENUM('YES','NO').

Пример
mysql> SELECT ps_is_instrument_default_timed('memory/innodb/row_log_buf');
+-------------------------------------------------------------+
| ps_is_instrument_default_timed('memory/innodb/row_log_buf') |
+-------------------------------------------------------------+
| NO                                                          |
+-------------------------------------------------------------+
mysql> SELECT ps_is_instrument_default_timed('statement/sql/alter_user');
+------------------------------------------------------------+
| ps_is_instrument_default_timed('statement/sql/alter_user') |
+------------------------------------------------------------+
| YES                                                        |
+------------------------------------------------------------+

24.4.5.13. Функция ps_is_thread_instrumented()

Возвращает YES или NO, чтобы указать, включена ли инструментовка Performance Schema для данного соединения, UNKNOWN, если идентификатор неизвестен или NULL, если ID NULL.

Параметры
  • in_connection_id BIGINT UNSIGNED: ID соединения. Это ID из столбца PROCESSLIST_ID таблицы Performance Schema threads или столбец Id вывода SHOW PROCESSLIST.

Возвращаемое значение

ENUM('YES','NO','UNKNOWN').

Пример
mysql> SELECT ps_is_thread_instrumented(43);
+-------------------------------+
| ps_is_thread_instrumented(43) |
+-------------------------------+
| UNKNOWN                       |
+-------------------------------+

mysql> SELECT ps_is_thread_instrumented(CONNECTION_ID());
+--------------------------------------------+
| ps_is_thread_instrumented(CONNECTION_ID()) |
+--------------------------------------------+
| YES                                        |
+--------------------------------------------+

24.4.5.14. Функция ps_thread_account()

Учитывая ID потока Performance Schema, возвращает учетную запись user_name@host_name, связанную с этим потоком.

Параметры
  • in_thread_id BIGINT UNSIGNED: ID потока, для которого нужно возвратить учетную запись. Значение должно соответствовать столбцу THREAD_ID из строки таблицы Performance Schema threads.

Возвращаемое значение

TEXT.

Пример
mysql> SELECT ps_thread_account(ps_thread_id(CONNECTION_ID()));
+--------------------------------------------------+
| ps_thread_account(ps_thread_id(CONNECTION_ID())) |
+--------------------------------------------------+
| root@localhost                                   |
+--------------------------------------------------+

24.4.5.15. Функция ps_thread_id()

Возвращает идентификатор потока Performance Schema для данного ID соединения или ID потока для текущего соединения, если идентификатор соединения NULL.

Параметры
  • in_connection_id BIGINT UNSIGNED: ID соединения, для которого нужно возвратить идентификатор потока. Это идентификатор соединения как в столбце PROCESSLIST_ID таблицы Performance Schema threads или столбце Id вывода SHOW PROCESSLIST.

Возвращаемое значение

BIGINT UNSIGNED.

Пример
mysql> SELECT ps_thread_id(260);
+-------------------+
| ps_thread_id(260) |
+-------------------+
| 285               |
+-------------------+

24.4.5.16. Функция ps_thread_stack()

Возвращается отформатированный в JSON стек всех запросов, этапов и событий в пределах Performance Schema для данного ID потока.

Параметры
  • in_thread_id BIGINT: ID потока, чтобы проследить. Значение должно соответствовать столбцу THREAD_ID любой строки таблицы Performance Schema threads .

  • in_verbose BOOLEAN: Включать ли информацию file:lineno в событиях.

Возвращаемое значение

LONGTEXT CHARACTER SET latin1.

Пример
mysql> SELECT ps_thread_stack(37, FALSE) AS thread_stack\G
*************************** 1. row ***************************
thread_stack: {"rankdir": "LR","nodesep": "0.10",
"stack_created": "2014-02-19 13:39:03", "mysql_version": "8.0.1-dmr-debug-log",
"mysql_user": "root@localhost","events": [{"nesting_event_id": "0",
"event_id": "10", "timer_wait": 256.35, "event_info": "sql/select",
"wait_info": "select @@version_comment limit 1\nerrors: 0\nwarnings: 0\nlock time:
...

24.4.5.17. Функция ps_thread_trx_info()

Возвращает объект JSON, содержащий информацию о данном потоке. Информация включает текущую транзакцию и запросы, которые это уже выполнило, полученные из таблиц Performance Schema events_transactions_current и events_statements_history. Потребителям для тех таблиц нужно позволить получить полные данные в объекте JSON.

Если вывод превышает длину усечения (65535 по умолчанию), ошибочный объект JSON будет возвращен:

{ "error": "Trx info truncated: Row 6 was cut by GROUP_CONCAT()" }
Подобные ошибочные объекты возвращены для других предупреждений, и исключения подняты во время функционального выполнения.

Параметры
  • in_thread_id BIGINT UNSIGNED: ID потока, для которого нужно возвратить информацию о транзакции. Значение должно соответствовать столбцу THREAD_ID из некоторой строки таблицы Performance Schema threads.

Опции

ps_thread_trx_info() может быть изменена, используя следующие параметры конфигурации или их соответствующие определяемые пользователем переменные (см. раздел 24.4.2.1):

  • ps_thread_trx_info.max_length, @sys.ps_thread_trx_info.max_length.

    Максимальная продолжительность вывода. Значение по умолчанию 65535.

Возвращаемое значение

LONGTEXT.

Пример
mysql> SELECT ps_thread_trx_info(48)\G
*************************** 1. row ***************************
ps_thread_trx_info(48): [
  {
"time": "790.70 us",
"state": "COMMITTED",
"mode": "READ WRITE",
"autocommitted": "NO",
"gtid": "AUTOMATIC",
"isolation": "REPEATABLE READ",
"statements_executed": [
  {
"sql_text": "INSERT INTO info VALUES (1, \'foo\')",
"time": "471.02 us",
"schema": "trx",
"rows_examined": 0,
"rows_affected": 1,
"rows_sent": 0,
"tmp_tables": 0,
"tmp_disk_tables": 0,
"sort_rows": 0,
"sort_merge_passes": 0
  },
  {
"sql_text": "COMMIT",
"time": "254.42 us",
"schema": "trx",
"rows_examined": 0,
"rows_affected": 0,
"rows_sent": 0,
"tmp_tables": 0,
"tmp_disk_tables": 0,
"sort_rows": 0,
"sort_merge_passes": 0
  }
]
  },
  {
"time": "426.20 us",
"state": "COMMITTED",
"mode": "READ WRITE",
"autocommitted": "NO",
"gtid": "AUTOMATIC",
"isolation": "REPEATABLE READ",
"statements_executed": [
  {
"sql_text": "INSERT INTO info VALUES (2, \'bar\')",
"time": "107.33 us",
"schema": "trx",
"rows_examined": 0,
"rows_affected": 1,
"rows_sent": 0,
"tmp_tables": 0,
"tmp_disk_tables": 0,
"sort_rows": 0,
"sort_merge_passes": 0
  },
  {
"sql_text": "COMMIT",
"time": "213.23 us",
"schema": "trx",
"rows_examined": 0,
"rows_affected": 0,
"rows_sent": 0,
"tmp_tables": 0,
"tmp_disk_tables": 0,
"sort_rows": 0,
"sort_merge_passes": 0
  }
]
  }
]

24.4.5.18. Функция quote_identifier()

Учитывая строковый параметр, эта функция производит заключенный в кавычки идентификатор, подходящий для включения в запросы SQL. Это полезно, когда значение, которое будет использоваться в качестве идентификатора, является зарезервированным словом или содержит обратный апостроф (`).

Параметры

in_identifier TEXT: Идентификатор, чтобы заключить в кавычки.

Возвращаемое значение

TEXT.

Пример
mysql> SELECT quote_identifier('plain');
+---------------------------+
| quote_identifier('plain') |
+---------------------------+
| `plain`                   |
+---------------------------+

mysql> SELECT quote_identifier('trick`ier');
+-------------------------------+
| quote_identifier('trick`ier') |
+-------------------------------+
| `trick``ier`                  |
+-------------------------------+

mysql> SELECT quote_identifier('integer');
+-----------------------------+
| quote_identifier('integer') |
+-----------------------------+
| `integer`                   |
+-----------------------------+

24.4.5.19. Функция sys_get_config()

Учитывая имя параметра конфигурации, возвращает значение опции из таблицы sys_config или обеспеченное значение по умолчанию (которое может быть NULL), если опция не существует в таблице.

Если sys_get_config() возвращает значение по умолчанию, и это значение NULL, ожидается, что вызывающий в состоянии обработать NULL для данного параметра конфигурации.

В соответствии с соглашением, подпрограммы, которые вызывают sys_get_config(), сначала проверят, существует ли соответствующая определяемая пользователем переменная и она не NULL. Если так, подпрограмма использует переменное значение, не читая таблицу sys_config. Если переменная не существует или NULL, подпрограмма читает значение опции из таблицы и устанавливает определяемую пользователем переменную в это значение. Для получения дополнительной информации об отношениях между параметрами конфигурации и их соответствующими определяемыми пользователем переменными см. раздел 24.4.2.1.

Если Вы хотите проверить, был ли параметр конфигурации уже установлен, а если нет, использовать возвращаемое значение sys_get_config(), Вы можете использовать IFNULL(...) (см. пример позже). Однако, это не должно быть сделано в цикле (например, для каждой строки в наборе результатов), потому что для повторных запросов, где назначение необходимо только в первой итерации, используя IFNULL(...) как ожидают, будет значительно медленнее чем использование блока IF (...) THEN ... END IF; (см. пример позже).

Параметры
  • in_variable_name VARCHAR(128): Название параметра конфигурации, для которого нужно возвратить значение.

  • in_default_value VARCHAR(128): Значение по умолчанию, чтобы возвратить, если параметр конфигурации не найден в таблице sys_config.

Возвращаемое значение

VARCHAR(128).

Пример

Получите значение конфигурации из таблицы sys_config, используя 128 как значение по умолчанию, если опция не присутствует в таблице:

mysql> SELECT sys.sys_get_config('statement_truncate_len', 128) AS Value;
+-------+
| Value |
+-------+
| 64    |
+-------+
Проверьте, установлена ли опция, в противном случае назначьте результат IFNULL(...) (использующий значение из таблицы sys_config):
mysql> SET @sys.statement_truncate_len =
    -> IFNULL(@sys.statement_truncate_len,
    ->    sys.sys_get_config('statement_truncate_len', 64));
Пример блока IF (...) THEN ... END IF;: Проверьте, установлена ли опция, в противном случае назначьте значение из таблицы sys_config:
IF (@sys.statement_truncate_len IS NULL) THEN
   SET @sys.statement_truncate_len = sys.sys_get_config('statement_truncate_len', 64);
END IF;

24.4.5.20. Функция version_major()

Эта функция возвращает главную версию сервера MySQL.

Параметры

Нет.

Возвращаемое значение

TINYINT UNSIGNED.

Пример
mysql> SELECT VERSION(), version_major();
+---------------------+-----------------+
| VERSION()           | version_major() |
+---------------------+-----------------+
| 8.0.1-dmr-debug-log | 8               |
+---------------------+-----------------+

24.4.5.21. Функция version_minor()

Эта функция возвращает младшую версию сервера MySQL.

Параметры

Нет.

Возвращаемое значение

TINYINT UNSIGNED.

Пример
mysql> SELECT VERSION(), version_minor();
+---------------------+-----------------+
| VERSION()           | version_minor() |
+---------------------+-----------------+
| 8.0.1-dmr-debug-log | 0               |
+---------------------+-----------------+

24.4.5.22. Функция version_patch()

Эта функция возвращает версию выпуска сервера MySQL.

Параметры

Нет.

Возвращаемое значение

TINYINT UNSIGNED.

Пример
mysql> SELECT VERSION(), version_patch();
+---------------------+-----------------+
| VERSION()           | version_patch() |
+---------------------+-----------------+
| 8.0.1-dmr-debug-log | 1               |
+---------------------+-----------------+

Поиск

 

Найди своих коллег!

Вы можете направить письмо администратору этой странички, Алексею Паутову. mailto:alexey.v.pautov@mail.ru