MySQL 8.0 схему sys
,
ряд объектов, который помогает DBA и разработчикам, интерпретирует данные,
собранные Performance Schema. sys
объекты схемы могут использоваться для типичной настройки и случаев
использования диагноза. Объекты в этой схеме включают:
Представления, которые суммируют данные 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
.
Перед использованием sys
schema
предпосылки, описанные в этом разделе, должны быть удовлетворены.
sys
schema требует MySQL 5.6 или выше.
Поскольку sys
schema
обеспечивает альтернативное средство доступа к Performance Schema, то
Performance Schema должна быть включена для работы
sys
schema. См.
раздел 23.2.2
.
Для полного доступа к sys
schema
у пользователя должны быть эти привилегии:
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);
Вы можете сделать 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
Следующие представления 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
.
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 |
Следующие разделы описывают таблицы и триггеры
sys
schema.
Эта таблица содержит параметры конфигурации
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;
Для строк, добавленных к таблице
sys_config
запросом
INSERT
триггер
sys_config_insert_set_user
устанавливает столбец
set_by
к текущему пользователю.
Триггер
sys_config_update_set_user
для таблицы
sys_config
подобен триггеру
sys_config_insert_set_user
, но для запросов
UPDATE
.
Следующие разделы описывают представления
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()
.format_statement()
.
format_path()
.Эти представления суммируют деятельность запросов, ввод/вывод файла и соединения, сгруппированные хостом.
У представлений 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
Общая сумма выделенной памяти для хоста.
Эти представления суммируют ввод/вывод файла, сгруппированный хостом. По умолчанию, строки сортированы по убыванию полного времени ожидания ввода/вывода файла.
У представлений
host_summary_by_file_io
и
x$host_summary_by_file_io
есть эти столбцы:
host
Хост, с которого соединялся клиент. Строки, у которых столбец
HOST
в основной таблице Performance Schema NULL
отведены для фоновых потоков и сообщаются с именем хоста
background
.
ios
Общее количество событий ввода/вывода файла для хоста.
io_latency
Общее количество времени ожидания событий ввода/вывода файла для хоста.
Эти представления суммируют ввод/вывод файла, сгруппированный типом событий и узлом. По умолчанию строки сортированы узлом и по убыванию полного времени ожидания ввода/вывода.
У представлений
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
Максимальное время ожидания рассчитанных возникновений случая ввода/вывода файла для узла.
Эти представления суммируют этапы запроса, сгруппированные хостом. По умолчанию строки сортированы узлом и по убыванию полного времени ожидания.
У представлений
host_summary_by_stages
и
x$host_summary_by_stages
есть эти столбцы:
host
Хост, с которого соединялся клиент. Строки, у которых столбец
HOST
в основной таблице Performance Schema NULL
отведены для фоновых потоков и сообщаются с именем хоста
background
.
event_name
Имя этапа событий.
total
Общее количество возникновений случая этапа для узла.
total_latency
Общее время ожидания рассчитанных возникновений случая этапа для узла.
avg_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
Общее количество полного сканирования таблицы запросами для узла.
Эти представления суммируют сведения о выполненных запросах, сгруппированных типом запроса и узлом. По умолчанию строки сортированы узлом и по убыванию полного времени ожидания.
У представлений
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
Общее количество полного сканирования таблицы возникновениями случая запроса для узла.
Эти представления суммируют информацию в таблице
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
Общее количество кэшируемых строк для схемы.
Эти представления суммируют информацию в таблице
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
Общее количество кэшируемых строк для схемы.
Эти представления суммируют блокировки 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
, чтобы уничтожить
сеанс, выполняющий блокирующий запрос.
Эти представления суммируют потребителей ввода/вывода, чтобы вывести на экран время ожидания ввода/вывода, сгруппированное потоком. По умолчанию строки отсортированы по убыванию полного времени ожидания ввода/вывода.
У представлений
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
.
Эти представления суммируют глобальных потребителей ввода/вывода, чтобы вывести на экран количество ввода/вывода, сгруппированного файлом. По умолчанию строки отсортированы по убыванию полного ввода/вывода (байтов прочитано и записано).
У представлений
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
Процент полных байтов ввода/вывода, которые были записаны.
Эти представления суммируют глобальных потребителей ввода/вывода, чтобы вывести на экран время ожидания ввода/вывода, сгруппированное файлом. По умолчанию строки отсортированы по убыванию полного времени ожидания.
У представлений
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
Общее время ожидания рассчитанных других событий ввода/вывода для файла.
Эти представления суммируют глобальных потребителей ввода/вывода, чтобы вывести на экран количество ввода/вывода и время ожидания ввода/вывода, сгруппированные случаем. По умолчанию строки сортированы по убыванию полного ввода/вывода (прочитано и записано байтов).
У представлений
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
Общее количество байтов, прочиатнных и записанных для случая ввода/вывода.
Эти представления суммируют глобальных потребителей ввода/вывода, чтобы вывести на экран количество ввода/вывода и время ожидания ввода/вывода, сгруппированное случаем. По умолчанию строки сортированы по убыванию полного времени ожидания.
У представлений
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
Среднее число байтов на запись для случая ввода/вывода.
Эти представления суммируют деятельность ввода/вывода файла, сгруппированную файлом и потоком. По умолчанию строки сортированы с новым вводом/выводом в начале.
У представлений latest_file_io
и x$latest_file_io
есть эти столбцы:
thread
Для потоков переднего плана учетная запись связана с потоком (и номер порта для соединений TCP/IP). Для фоновых потоков имя и ID потока.
file
Имя пути к файлу.
latency
Время ожидания для случая ввода/вывода файла.
operation
Тип работы.
requested
Число байтов данных для случая ввода/вывода файла.
Эти представления суммируют использование памяти, сгруппированное узлом. По умолчанию строки сортированы по убыванию использования объема памяти.
У представлений
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
Полное распределение памяти в байтах для хоста.
Эти представления суммируют использование памяти, сгруппированное потоком. По умолчанию строки сортированы по убыванию использования объема памяти.
У представлений
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
Полное распределение памяти в байтах для потока.
Эти представления суммируют использование памяти, сгруппированное пользователем. По умолчанию строки сортированы по убыванию использования объема памяти.
У представлений
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
Полное распределение памяти в байтах для пользователя.
Эти представления суммируют использование памяти, сгруппированное типом распределения (то есть событием). По умолчанию строки сортированы по убыванию используемого объема памяти.
У представлений
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
Высшая точка для среднего числа байтов на блок памяти, выделенный для случая.
Эти представления суммируют полное использование памяти в пределах сервера.
У представлений
memory_global_total
и
x$memory_global_total
есть эти столбцы:
total_allocated
Сколько байт памяти выделено в пределах сервера.
Это представление суммирует метрики сервера MySQL, чтобы показать имена переменной, значения и типы. По умолчанию строки сортированы типом и именем переменной.
Представление metrics
включает эту информацию:
Глобальные переменные состояния из таблицы Performance Schema
global_status
.
InnoDB
из таблицы INFORMATION_SCHEMA
INNODB_METRICS
.
Есть некоторое дублирование информации между таблицами
global_status
и
INNODB_METRICS
,
которое устраняет представление
metrics
.
Представление metrics
имеет эти столбцы:
Variable_name
Метрическое имя. Метрический тип определяет источник, из которого взято имя:
Для глобальных переменных состояния: столбец
VARIABLE_NAME
таблицы
global_status
.
InnoDB
: столбец NAME
таблицы
INNODB_METRICS
.
Variable_value
Метрическое значение. Метрический тип определяет источник, из которого взято значение:
Для глобальных переменных состояния: столбец
VARIABLE_NAME
таблицы
global_status
.
InnoDB
: столбец NAME
таблицы
INNODB_METRICS
.
memory_summary_global_by_event_name
.NOW(3)
или
UNIX_TIMESTAMP(NOW(3))
.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
.Эти представления суммируют 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
Название программы клиента.
Это представление возвращает информацию о потерянных инструментах Performance Schema, чтобы указать, способна ли Performance Schema контролировать все данные во время выполнения.
У представления
ps_check_lost_instrumentation
есть эти столбцы:
variable_name
Имя переменной состояния Performance Schema, указывающее, какой тип инструмента был потерян.
variable_value
Число инструментов.
Это представление указывает, которые таблицы имеют столбцы
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
Отношение использованных к разрешенным значениям для столбца. Это указывает, сколько значений из последовательности израсходовано.
Эти представления обеспечивают индексную статистику. По умолчанию строки сортированы по убыванию и общему количеству времени ожидания индекса.
У представлений
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
Общее время ожидания рассчитанных удалений из индекса.
Это представление суммирует типы объектов в пределах каждой схемы. По умолчанию строки отсортированы типом объекта и схемой.
Для случаев MySQL с большим количеством объектов это представление может занять много времени для выполнения.
У представления
schema_object_overview
есть эти столбцы:
db
Имя схемы.
object_type
Тип объекта: BASE TABLE
,
INDEX (
,
index_type
)EVENT
, FUNCTION
,
PROCEDURE
, TRIGGER
, VIEW
.
count
Число объектов данного типа в схеме.
Представление
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
Название столбцов в индексе.
Это представление показывает, какие сеансы заблокированы, ожидая на блокировках метаданных, и что блокирует их.
Описания столбца здесь кратки. Для дополнительной информации см. описание
таблицы 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
, чтобы
уничтожить сеанс, выполняющий запрос блокировки.
Эти представления суммируют табличную статистику. По умолчанию строки сортированы по убыванию общего времени ожидания.
Это вспомогательные представления для
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
Общее время ожидания разных запросов ввода/вывода для таблицы.
Эти представления суммируют табличную статистику, включая статистику
буферного бассейна 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
для таблицы.
Они показывают, к каким таблицам получают доступ с полным сканированием таблицы. По умолчанию строки сортированы по убыванию просмотренных строк.
У представлений
schema_tables_with_full_table_scans
и
x$schema_tables_with_full_table_scans
есть эти столбцы:
object_schema
Имя схемы.
object_name
Имя таблицы.
rows_full_scanned
Общее количество строк просмотрено полными просмотрами таблицы.
latency
Общее время ожидания полных просмотров таблицы.
Это представлени показывает индексы, для которых нет никаких событий, которые указывают, что они не используются. По умолчанию строки сортированы схемой и таблицей.
Это представление является самым полезным, когда обработка идет столь достаточно долго, что ее рабочая нагрузка является важной. Иначе присутствие индекса в этом представлении, возможно, не является значащим.
У представления
schema_unused_indexes
есть эти столбцы:
object_schema
Имя схемы.
object_name
Имя таблицы.
index_name
Неиспользуемое имя индекса.
Эти представления подобны
processlist
и
x$processlist
,
но они отфильтровывают фоновые процессы, чтобы вывести на экран только
пользовательские сеансы. Для описаний столбцов см.
раздел 24.4.3.22.
Для каждого соединения это представление выводит на экран версию SSL, шифр и количество повторно использованных сеансов SSL.
У представления
session_ssl_status
есть эти столбцы:
thread_id
Идентификатор потока для соединения.
ssl_version
Версия SSL, которая используется для соединения.
ssl_cipher
Шифр SSL, который используется для соединения.
ssl_sessions_reused
Число повторно использованных сеансов SSL для соединения.
Эти представления перечисляют нормализованные запросы с соединенной статистикой. Контент подражает представлению 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
Время, в которое был последний раз отмечен запрос.
Эти представления выводят на экран нормализованные запросы, которые произвели ошибки или предупреждения. По умолчанию строки сортированы по убыванию количества ошибок и предупреждений.
У представлений
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
Обзор запроса.
Эти представления выводят на экран нормализованные запросы, которые сделали полное сканирование таблицы. По умолчанию строки сортированы по убыванию процента времени, за которое полный просмотр был сделан и убыванию полного времени ожидания.
У представлений
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
Обзор запроса.
Эти представления перечисляют запросы со временем выполнения в 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
Обзор запроса.
Эти представления перечисляют нормализованные запросы, которые выполнили сортировки. По умолчанию строки сортированы по убыванию полного времени ожидания.
У представлений
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
Обзор запроса.
Эти представления перечисляют нормализованные запросы, которые использовали временные таблицы. По умолчанию строки сортированы по убыванию числа временных таблиц на диске и убыванию числа временных используемых таблиц в памяти.
У представлений
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
Обзор запроса.
Эти представления суммируют деятельность запросов, ввод/вывод файла и соединения, сгруппированные пользователем. По умолчанию строки сортированы по убыванию полного времени ожидания.
У представлений 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
Общая сумма выделенной памяти для пользователя.
Эти представления суммируют ввод/вывод файла, сгруппированный пользователем. По умолчанию строки сортированы по убыванию полного времени ожидания ввода/вывода файла.
У представлений
user_summary_by_file_io
и
x$user_summary_by_file_io
есть эти столбцы:
user
Имя пользователя клиента. Строки, для которых столбец USER
в
основной таблице Performance Schema NULL
, отведены для фоновых
потоков и сообщаются с именем хоста background
.
ios
Общее количество событий ввода/вывода файла для пользователя.
io_latency
Общее время ожидания рассчитанных событий ввода/вывода файла для пользователя.
Эти представления суммируют ввод/вывод файла, сгруппированный типом событий и пользователем. По умолчанию строки сортированы по пользователю и убыванию полного времени ожидания.
У представлений
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
Максимальное время ожидания рассчитанных возникновений случая ввода/вывода файла для пользователя.
Эти представления суммируют этапы, сгруппированные пользователем. По умолчанию строки сортированы по пользователю и убыванию полного времени ожидания этапа.
У представлений
user_summary_by_stages
и
x$user_summary_by_stages
есть эти столбцы:
user
Имя пользователя клиента. Строки, для которых столбец USER
в
основной таблице Performance Schema NULL
, отведены для фоновых
потоков и сообщаются с именем хоста background
.
event_name
Имя этапа события.
total
Общее количество возникновений случая этапа для пользователя.
total_latency
Общее время ожидания рассчитанных возникновений случая этапа для пользователя.
avg_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
Общее количество полного сканирования таблицы запросами для пользователя.
Эти представления суммируют информацию о выполненных запросах, сгруппированных по типу запроса и пользователю. По умолчанию строки сортированы по пользователю и убыванию полного времени ожидания.
У представлений
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
Общее количество полного сканирования таблицы возникновениями случая запроса для пользователя.
Это представление обеспечивает текущие версии
sys
schema и MySQL server.
У представления version
есть эти столбцы:
sys_version
Версия sys
schema.
mysql_version
Версия MySQL server.
Эти представления суммируют средние времена ожидания класса, сгруппированные классом событий. По умолчанию строки сортированы по убыванию среднего времени ожидания. Проигнорированы неактивные события.
Класс событий определен, отрезая от имени событий все после первых трех
компонентов. Например, класс для 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
Максимальное время ожидания рассчитанных возникновений событий в классе.
Эти представления суммируют общие времена ожидания класса, сгруппированные классом событий. По умолчанию строки сортированы по убыванию полного времени ожидания. Проигнорированы неактивные события.
Класс событий определен, отрезая от имени событий все после первых трех
компонентов. Например, класс для 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
Максимальное время ожидания рассчитанных возникновений событий в классе.
Эти представления суммируют ожидания событий, сгруппированные хостом и случаем. По умолчанию строки сортированы по хосту и убыванию полного времени ожидания. Проигнорированы неактивные события.
У представлений
waits_by_host_by_latency
и
x$waits_by_host_by_latency
есть эти столбцы:
host
Хост, с которого произошло соединение.
event
Имя событий.
total
Общее количество возникновений случая для хоста.
total_latency
Общее время ожидания рассчитанных возникновений случая для хоста.
avg_latency
Среднее время ожидания на рассчитанное возникновение случая для хоста.
max_latency
Максимальное время ожидания рассчитанных возникновений случая для хоста.
Эти представления суммируют ожидающие события, сгруппированные по пользователю и случаю. По умолчанию строки сортированы по пользователю и убыванию полного времени ожидания. Проигнорированы неактивные события.
У представлений
waits_by_user_by_latency
и
x$waits_by_user_by_latency
есть эти столбцы:
user
Пользователь, связанный с соединением.
event
Имя событий.
total
Общее количество возникновений случая для пользователя.
total_latency
Общее время ожидания рассчитанных возникновений случая для пользователя.
avg_latency
Среднее время ожидания на рассчитанное возникновение случая для пользователя.
max_latency
Максимальное время ожидания рассчитанных возникновений случая для пользователя.
Эти представления суммируют ожидающие события, сгруппированные случаем. По умолчанию строки сортированы по убыванию полного времени ожидания. Проигнорированы неактивные события.
У представлений
waits_global_by_latency
и
x$waits_global_by_latency
есть эти столбцы:
events
Имя событий.
total
Общее количество возникновений случая.
total_latency
Общее время ожидания рассчитанных возникновений случая.
avg_latency
Среднее время ожидания на рассчитанное возникновение случая.
max_latency
Максимальное время ожидания рассчитанных возникновений случая.
Следующие разделы описывают хранимые процедуры
sys
schema.
Учитывая имя схемы, эта процедура создает схему синонима, содержащую
представления, которые обращаются ко всем таблицам и представлениям в
оригинальной схеме. Это может использоваться, например, чтобы создать более
короткое имя, которым можно сослаться на схему с длинным именем (такое, как
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 | ...
Создает сообщение о текущем состоянии сервера в диагностических целях.
Эта процедура требует привилегию
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;
Учитывая запрос 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 | +----------+
Отключает инструментовку Performance Schema для всех фоновых потоков. Производит набор результатов, указывающий, сколько фоновых потоков было отключено. Уже отключенные потоки не считаются.
Нет.
mysql> CALL ps_setup_disable_background_threads(); +--------------------------------+ | summary | +--------------------------------+ | Disabled 24 background threads | +--------------------------------+
Отключает потребителей Performance Schema с именами, которые содержит параметр. Производит набор результатов, указывающий, сколько потребителей было отключено. Уже отключенные потребители не считаются.
consumer VARCHAR(128)
: Значение перечисляет
потребительские имена, которые идентифицированы при использовании
%consumer%
как операнда для
LIKE
.
Значение ''
соответствует всем потребителям.
Отключить всех потребителей запроса:
mysql> CALL ps_setup_disable_consumer('statement'); +----------------------+ | summary | +----------------------+ | Disabled 4 consumers | +----------------------+
Отключает инструменты 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 | +--------------------------+
Учитывая идентификатор соединения, отключает инструментовку 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 | +-------------------+
Включает инструментовку Performance Schema для всех фоновых потоков. Производит набор результатов, указывающий, сколько фоновых потоков было включено. Уже включенные потоки не считаются.
Нет.
mysql> CALL ps_setup_enable_background_threads(); +-------------------------------+ | summary | +-------------------------------+ | Enabled 24 background threads | +-------------------------------+
Включает потребителей Performance Schema с именами, которые содержит параметр. Производит набор результатов, указывающий, сколько потребителей включились. Уже включенные потребители не считаются.
consumer VARCHAR(128)
: Значение перечисляет
имена, которые идентифицированы при использовании %consumer%
как операнд для LIKE
.
Значение ''
соответствует всем потребителям.
Включите всех потребителей:
mysql> CALL ps_setup_enable_consumer('statement'); +---------------------+ | summary | +---------------------+ | Enabled 4 consumers | +---------------------+
Включает инструменты 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 | +-------------------------+
Учитывая идентификатор соединения, включает инструментовку 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 | +------------------+
Перезагружает конфигурацию Performance Schema, сохраненную ранее в
пределах того же самого использования сеанса с помощью
ps_setup_save()
.
Для получения дополнительной информации см. описание
ps_setup_save()
.
Эта процедура требует привилегии
SUPER
, потому что это
управляет сеансовой перменной
sql_log_bin
, чтобы
отключить двоичное журналирование во время выполнения.
Нет.
Сбрасывает конфигурацию 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 ('%', '%', '%') ...
Сохраняет текущую конфигурацию 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();
Показывает все в настоящее время отключенные конфигурации 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 | +-------------+----------------------+---------+-------+ ...
Показать всех в настоящее время отключенных потребителей 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 | +----------------------------------+
Показывает все в настоящее время отключенные инструменты 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 ...
Показывает все в настоящее время включенные конфигурации 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 | +-----------------------------+
Показать всех в настоящее время включенных потребителей Performance Schema.
Нет.
mysql> CALL ps_setup_show_enabled_consumers(); +-----------------------------+ | enabled_consumers | +-----------------------------+ | events_statements_current | | events_transactions_current | | global_instrumentation | | thread_instrumentation | | statements_digest | +-----------------------------+
Показывает все в настоящее время включенные инструменты 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 ...
Выводит на экран текстовый график гистограммы средних значений времени
ожидания для всех нормализованных запросов, прослеженных в пределах таблицы
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;
Трассирует все инструменты 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)
Выводит все данные 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)
Усекает все сводные таблицы Performance Schema, сбрасывая всю соединенную инструментовку как снимок. Производит набор результатов, указывающий, сколько таблиц было усечено.
in_verbose BOOLEAN
: Вывести ли на экран каждый
запрос TRUNCATE TABLE
прежде, чем выполнить это.
mysql> CALL ps_truncate_all_tables(FALSE); +---------------------+ | summary | +---------------------+ | Truncated 44 tables | +---------------------+
Создает сообщение о запросах, работающих на сервере. Представления вычислены, базируясь на полной деятельности и/или деятельности дельты.
Эта процедура требует привилегии
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
.
Следующие значения разрешены:
with_runtimes_in_95th_percentile
:
Используйте
statements_with_runtimes_in_95th_percentile
.
analysis
: Используйте
statement_analysis
.
with_errors_or_warnings
: Используйте
statements_with_errors_or_warnings
.with_full_table_scans
: Используйте
statements_with_full_table_scans
.with_sorting
: Используйте
statements_with_sorting
.with_temp_tables
: Используйте
statements_with_temp_tables
.custom
: Используйте представление custom.
Это представление должно быть определено, используя опцию конфигурации
statement_performance_analyzer.view
, чтобы
назвать запрос или существующее представление.Работа
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
с одноминутным периодом дельты:
Составьте временную таблицу, чтобы сохранить начальный снимок.
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 | +-------+----+------------+---------------+-------------+---------------+-------------------+-------------------+--------+ ...
Тестирует, существует ли данная таблица как регулярная,
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)
Следующие разделы описывают хранимые функции
sys
schema.
Учитывая имя пути к файлу, возвращает компонент пути, который представляет
имя схемы. Эта функция предполагает, что имя файла находится в пределах
каталога схемы. Поэтому это не будет работать с разделением или таблицей,
определенной с использованием собственной табличной
опции 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 | +-----------------------------------------------------------------------+
Учитывая имя пути к файлу, возвращает компонент пути, который представляет имя таблицы.
Эта функция полезна, извлекая информацию о вводе/выводе файла из 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 | +----------------------------------------------------------------------+
Учитывая значение в байтах, конвертирует это к удобочитаемому формату и
возвращает строку, состоящую из значения и индикатора модулей. В зависимости
от размера значения, части модулей: 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 | +-------------------+------------------------------------+
Учитывая путь, возвращает измененный путь после замены подпутей, которые соответствуют значениям следующих системных переменных в этом порядке:
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 | +-----------------------------------------------------+
Учитывая строку (обычно представляющей запрос 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 | +-----------------------------------+
Учитывая время ожидания 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 | +-------------------+------------------------------+
Добавляет значение к списку разделенных запятой значений и возвращает результат.
Эта функция и 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 | +--------------------------------------------+
Удаляет значение из списка разделенных запятой значений
и возвращает результат. Для получения дополнительной информации см. описание
list_add()
.
in_list TEXT
: Список, который будет изменен.
in_drop_value TEXT
: Значение, чтобы удалить из списка.
TEXT
.
Возвращает 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 | +--------------------------------------------+
Возвращает 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 | +--------------------------------------------------+
Возвращает 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 | +--------------------------------------------------------------+
Возвращает 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 | +------------------------------------------------------------+
Возвращает 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 | +--------------------------------------------+
Учитывая 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 | +--------------------------------------------------+
Возвращает идентификатор потока 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 | +-------------------+
Возвращается отформатированный в 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: ...
Возвращает объект 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 } ] } ]
Учитывая строковый параметр, эта функция производит заключенный в кавычки
идентификатор, подходящий для включения в запросы 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` | +-----------------------------+
Учитывая имя параметра конфигурации, возвращает значение опции из таблицы
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;
Эта функция возвращает главную версию сервера MySQL.
Нет.
TINYINT UNSIGNED
.
mysql> SELECT VERSION(), version_major(); +---------------------+-----------------+ | VERSION() | version_major() | +---------------------+-----------------+ | 8.0.1-dmr-debug-log | 8 | +---------------------+-----------------+
Эта функция возвращает младшую версию сервера MySQL.
Нет.
TINYINT UNSIGNED
.
mysql> SELECT VERSION(), version_minor(); +---------------------+-----------------+ | VERSION() | version_minor() | +---------------------+-----------------+ | 8.0.1-dmr-debug-log | 0 | +---------------------+-----------------+
Эта функция возвращает версию выпуска сервера MySQL.
Нет.
TINYINT UNSIGNED
.
mysql> SELECT VERSION(), version_patch(); +---------------------+-----------------+ | VERSION() | version_patch() | +---------------------+-----------------+ | 8.0.1-dmr-debug-log | 1 | +---------------------+-----------------+