29.12.2.4 设置对象表
setup_objects
表控制性能.schema是否监控特定对象。该表的默认大小为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
中列出的对象类型,性能.schema使用该表来确定如何监控它们。对象匹配基于OBJECT_SCHEMA
和OBJECT_NAME
列。没有匹配的对象不被监控。
默认对象配置的效果是对所有表进行instrumentation,除了mysql
、INFORMATION_SCHEMA
和performance_schema
数据库中的表。 (INFORMATION_SCHEMA数据库中的表无论setup_objects中的内容如何都不会被instrumentation;setup_objects中的行information_schema.%
只是使这个默认明确。)
当性能.schema在setup_objects
中查找匹配时,它首先尝试找到更具体的匹配。例如,对于表db1.t1
,它将查找'db1'
和't1'
的匹配,然后是'db1'
和'%'
的匹配,然后是'%'
和'%'
的匹配。匹配的顺序很重要,因为不同的匹配setup_objects
行可以具有不同的ENABLED
和TIMED
值。
可以通过用户具有INSERT
或DELETE
权限的方式插入或删除setup_objects
中的行。对于现有行,只有ENABLED
和TIMED
列可以被修改,需要用户具有UPDATE
权限。
关于setup_objects
表在事件过滤中的作用,详见第29.4.3节,“Event Pre-Filtering”.
表setup_objects
具有以下列:
-
OBJECT_TYPE
要instrument的对象类型。该值可以是
'EVENT'
(事件调度器事件)、'FUNCTION'
(存储函数)、'PROCEDURE'
(存储过程)、'TABLE'
(基本表)或'TRIGGER'
(触发器)。TABLE
过滤影响表I/O事件(wait/io/table/sql/handler
instrument)和表锁事件(wait/lock/table/sql/handler
instrument)。 -
OBJECT_SCHEMA
包含对象的schema。这应该是一个字面名称,或者
'%'
以表示“任何schema”。 -
OBJECT_NAME
instrumented对象的名称。这应该是一个字面名称,或者
'%'
以表示“任何对象”。 -
ENABLED
是否对对象instrument事件。该值是
YES
或NO
。该列可以被修改。 -
TIMED
是否对对象instrument事件。该列可以被修改。
表setup_objects
具有以下索引:
-
索引(
OBJECT_TYPE
,OBJECT_SCHEMA
,OBJECT_NAME
)
TRUNCATE TABLE
允许对表setup_objects
进行TRUNCATE操作。它删除了行。