Spec-Zone.ru › MySQL 5.7

25.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-5.7-en/performance-schema-table-characteristics.html

Spec-Zone.ru

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