该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.%
只是明确显示了此默认值。)
当 Performance Schema 检查中的匹配项时
setup_objects
,它会首先尝试找到更具体的匹配项。例如,对于一个表
db1.t1
,它先查找 and 的匹配项
'db1'
,'t1'
然后查找
'db1'
and的匹配项,'%'
然后
查找'%'
and的匹配项'%'
。匹配发生的顺序很重要,因为不同的匹配
setup_objects
行可以有不同ENABLED
的
TIMED
值。
对表具有或
权限setup_objects
的用户
可以插入或删除行
。对于现有的行,具有表权限
的用户只能修改和
列。INSERT
DELETE
ENABLED
TIMED
UPDATE
有关
setup_objects
表在事件过滤中的作用的更多信息,请参阅
第 25.4.3 节,“事件预过滤”。
该setup_objects
表有以下列:
OBJECT_TYPE
要检测的对象的类型。该值是
'EVENT'
(Event Scheduler event)、'FUNCTION'
(stored function)、'PROCEDURE'
(stored procedure)、'TABLE'
(base table) 或'TRIGGER'
(trigger) 之一。TABLE
过滤会影响表 I/O 事件 (wait/io/table/sql/handler
instrument) 和表锁定事件 (wait/lock/table/sql/handler
instrument)。OBJECT_SCHEMA
包含对象的架构。这应该是一个字面名称,或者
'%'
表示“任何模式。”OBJECT_NAME
检测对象的名称。这应该是一个字面名称,或者
'%'
表示“任何对象。”ENABLED
是否检测对象的事件。值为
YES
或NO
。此列可以修改。TIMED
对象的事件是否定时。值为
YES
或NO
。此列可以修改。
TRUNCATE TABLE
表是允许的setup_objects
。它删除行。