Spec-Zone.ru › MySQL 8.4

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) разрешено для очистки собранных событий, поэтому TRUNCATE TABLE может быть использовано для таблиц, содержащих подобную информацию, например, таблиц с префиксом events_waits_.

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

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

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

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

  • Для удаления (truncate) таблиц, которые могут быть удалены, необходимо иметь привилегию 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-8.4-en/performance-schema-table-characteristics.html

Spec-Zone.ru

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