MySQL 8.0 リファレンスマニュアル


MySQL 8.0 リファレンスマニュアル  /  MySQL パフォーマンススキーマ  /  パフォーマンススキーマの一般的なテーブル特性

27.11 パフォーマンススキーマの一般的なテーブル特性

performance_schema データベースの名前は小文字で、その中のテーブルの名前も同様です。 クエリーでは名前を小文字で指定してください。

performance_schema データベースの多くのテーブルは読取り専用で、変更できません:

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

セットアップテーブルの一部には、パフォーマンススキーマ操作に影響するように変更できるカラムがあります。さらに行の挿入や削除を許可するものもあります。 収集されたイベントをクリアするために切り捨てが許可されるため、events_waits_ のプリフィクスのある名前のテーブルなど、それらの種類の情報を格納するテーブルで、TRUNCATE TABLE を使用できます。

サマリーテーブルは TRUNCATE TABLE で切り捨てることができます。 一般に、サマリーカラムは行を削除するのではなく、0 または NULL にリセットされます。 これにより、収集された値をクリアし、アグリゲーションを再開できます。 それは、実行時構成の変更を行なったあとなどに便利な場合があります。 この切捨て動作の例外は、個々のサマリーテーブルのセクションに記載されています。

ほかのデータベースやテーブルに対する権限は次のようになります。

  • performance_schema テーブルから取得するには、SELECT 権限が必要です。

  • 変更可能なそれらのカラムを変更するには、UPDATE 権限が必要です。

  • 切り捨て可能なテーブルを切り捨てるには、DROP 権限が必要です。

「パフォーマンススキーマ」テーブルに適用される権限のセットは限られているため、データベースまたはテーブルのアーカイブで権限を付与するための短縮形として 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)

関連キーワード:  テーブル, パフォーマンス, スキーマ, events, performance, replication, schema, history, 変数, status