setup_objects
テーブルは、パフォーマンススキーマが特定のオブジェクトをモニターするかどうかを制御します。 このテーブルはデフォルトで 100 行の最大サイズになります。 テーブルサイズを変更するには、サーバー起動時に performance_schema_setup_objects_size
システム変数を変更します。
初期 setup_objects
の内容は次のように見えます。
mysql> SELECT * FROM performance_schema.setup_objects;
+-------------+--------------------+-------------+---------+-------+
| OBJECT_TYPE | OBJECT_SCHEMA | OBJECT_NAME | ENABLED | TIMED |
+-------------+--------------------+-------------+---------+-------+
| EVENT | mysql | % | NO | NO |
| EVENT | performance_schema | % | NO | NO |
| EVENT | information_schema | % | NO | NO |
| EVENT | % | % | YES | YES |
| FUNCTION | mysql | % | NO | NO |
| FUNCTION | performance_schema | % | NO | NO |
| FUNCTION | information_schema | % | NO | NO |
| FUNCTION | % | % | YES | YES |
| PROCEDURE | mysql | % | NO | NO |
| PROCEDURE | performance_schema | % | NO | NO |
| PROCEDURE | information_schema | % | NO | NO |
| PROCEDURE | % | % | YES | YES |
| TABLE | mysql | % | NO | NO |
| TABLE | performance_schema | % | NO | NO |
| TABLE | information_schema | % | NO | NO |
| TABLE | % | % | YES | YES |
| TRIGGER | mysql | % | NO | NO |
| TRIGGER | performance_schema | % | NO | NO |
| TRIGGER | information_schema | % | NO | NO |
| TRIGGER | % | % | YES | YES |
+-------------+--------------------+-------------+---------+-------+
setup_objects
テーブルへの変更はただちにオブジェクトモニタリングに影響します。
setup_objects
に示されているオブジェクトの種類では、パフォーマンススキーマはそれらのモニター方法にテーブルを使用します。 オブジェクトの一致は OBJECT_SCHEMA
および OBJECT_NAME
カラムに基づきます。 一致のないオブジェクトはモニターされません。
デフォルトのオブジェクト構成の効果は、mysql
、INFORMATION_SCHEMA
、および performance_schema
データベースのテーブルを除くすべてのテーブルをインストゥルメントすることです。 (INFORMATION_SCHEMA
データベース内のテーブルは、setup_objects
の内容に関係なくインストゥルメントされず、information_schema.%
の行は単にこのデフォルトを明示します。)
パフォーマンススキーマは、setup_objects
の一致をチェックする場合、まずより詳細な一致を見つけようとします。 たとえば、テーブル db1.t1
では、'db1'
と 't1'
、次に 'db1'
と '%'
、次に '%'
と '%'
の一致を検索します。 さまざまな一致する setup_objects
行はさまざまな ENABLED
値と TIMED
値を持つ可能性があるため、一致が発生する順序が重要です。
テーブルへの INSERT
または DELETE
権限を持つユーザーが、setup_objects
に行を挿入したり、削除したりできます。 既存の行では、テーブルへの UPDATE
権限を持つユーザーによって、ENABLED
および TIMED
カラムのみを変更できます。
イベントフィルタリングにおける setup_objects
テーブルの役割の詳細については、セクション27.4.3「イベントの事前フィルタリング」を参照してください。
setup_objects
テーブルにはこれらのカラムがあります。
-
OBJECT_TYPE
インストゥルメントするオブジェクトの種類。 値は、
'EVENT'
(イベントスケジューライベント)、'FUNCTION'
(ストアドファンクション)、'PROCEDURE'
(ストアドプロシージャ)、'TABLE'
(実テーブル) または'TRIGGER'
(トリガー) のいずれかです。TABLE
フィルタリングはテーブル I/O イベント (wait/io/table/sql/handler
インストゥルメント) およびテーブルロックイベント (wait/lock/table/sql/handler
インストゥルメント) に影響します。 -
OBJECT_SCHEMA
オブジェクトを格納するスキーマ。 これはリテラル名、または「任意のスキーマ」を意味する
'%'
であるべきです。 -
OBJECT_NAME
インストゥルメントされたオブジェクトの名前。 これはリテラル名、または「任意のオブジェクト」を意味する
'%'
であるべきです。 -
ENABLED
オブジェクトのイベントがインストゥルメントされるかどうか。 値は
YES
またはNO
です。 このカラムは変更できます。 -
TIMED
オブジェクトのイベントの時間が測定されるかどうか。 このカラムは変更できます。
setup_objects
テーブルには次のインデックスがあります:
(
OBJECT_TYPE
,OBJECT_SCHEMA
,OBJECT_NAME
) のインデックス
TRUNCATE TABLE
は setup_objects
テーブルに対して許可されています。 行が削除されます。