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)