Spec-Zone.ru › MySQL 9.2

29.11 Характеристики общих таблиц Performance Schema

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

Многие таблицы в базе данных performance_schema являются только для чтения и не могут быть изменены:

mysql> TRUNCATE TABLE performance_schema.setup_instruments;
ERROR 1683 (HY000): Invalid performance_schema usage.

Некоторые таблицы настроек имеют столбцы, которые можно изменить, чтобы повлиять на работу Performance Schema; некоторые также допускают вставку или удаление строк. Разрушение таблицы разрешено для очистки собранных событий, поэтому TRUNCATE TABLE можно использовать для таблиц, содержащих подобную информацию, таких как таблицы с префиксом events_waits_.

Таблицы сводок можно разрушить с помощью TRUNCATE TABLE. Как правило, это приводит к сбросу значений столбцов сводки до 0 или NULL, а не к удалению строк. Это позволяет очистить собранные значения и перезапустить агрегирование. Это может быть полезно, например, после внесения изменений в конфигурацию во время выполнения. Исключения из этого поведения при разрушении приведены в разделах отдельных таблиц сводок.

Права доступа аналогичны правам доступа к другим базам данных и таблицам:

  • Для извлечения данных из таблиц performance_schema необходимо иметь привилегию SELECT.

  • Для изменения тех столбцов, которые можно изменить, необходимо иметь привилегию UPDATE.

  • Для разрушения таблиц, которые можно разрушить, необходимо иметь привилегию DROP.

Поскольку для таблиц Performance Schema применяется только ограниченный набор привилегий, попытки использовать GRANT ALL как сокращение для предоставления привилегий на уровне базы данных или таблицы завершаются ошибкой:

mysql> GRANT ALL ON performance_schema.*
       TO 'u1'@'localhost';
ERROR 1044 (42000): Access denied for user 'root'@'localhost'
to database 'performance_schema'
mysql> GRANT ALL ON performance_schema.setup_instruments
       TO 'u2'@'localhost';
ERROR 1044 (42000): Access denied for user 'root'@'localhost'
to database 'performance_schema'

Вместо этого предоставьте точно необходимые привилегии:

mysql> GRANT SELECT ON performance_schema.*
       TO 'u1'@'localhost';
Query OK, 0 rows affected (0.03 sec)

mysql> GRANT SELECT, UPDATE ON performance_schema.setup_instruments
       TO 'u2'@'localhost';
Query OK, 0 rows affected (0.02 sec)

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/performance-schema-table-characteristics.html

Spec-Zone.ru

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