25.12.2.4 setup_objectstable
setup_objectstable 控制性能模式是否监视特定对象。默认情况下,此 table 的最大大小为 100 行。要更改 table 大小,请在服务器启动时修改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_objectstable 的修改会立即影响对象监视。
对于setup_objects中列出的对象类型,性能模式使用该 table 来监视它们。对象匹配基于OBJECT_SCHEMA
和OBJECT_NAME
列。不匹配的对象将不会受到监视。
默认对象配置的结果是检测所有 table,但mysql
,INFORMATION_SCHEMA
和performance_schema
数据库中的 table 除外。 (无论setup_objects的内容如何,都不会检测INFORMATION_SCHEMA
数据库中的 table; information_schema.%
的行仅使此默认值明确。)
当性能模式在setup_objects中检查匹配项时,它将尝试首先查找更具体的匹配项。例如,对于 tabledb1.t1
,它将寻找'db1'
和't1'
的匹配项,然后寻找'db1'
和'%'
的匹配项,然后寻找'%'
和'%'
的匹配项。匹配发生的 Sequences 很重要,因为不同的匹配setup_objects行可以具有不同的ENABLED
和TIMED
值。
具有 tableINSERT或DELETE特权的用户可以将行插入setup_objects或从中删除。对于现有行,具有UPDATE特权的用户只能修改ENABLED
和TIMED
列。
有关setup_objectstable 在事件过滤中的作用的更多信息,请参见第 25.4.3 节“事件预过滤”。
setup_objectstable 具有以下列:
OBJECT_TYPE
要测量的对象的类型。该值是'EVENT'
(事件调度程序事件),'FUNCTION'
(存储函数),'PROCEDURE'
(存储过程),'TABLE'
(基本 table)或'TRIGGER'
(触发)之一。
TABLE
过滤会影响 tableI/O 事件(wait/io/table/sql/handler
工具)和 table 锁定事件(wait/lock/table/sql/handler
工具)。
OBJECT_SCHEMA
包含对象的架构。该名称应为 Literals 名称,或'%'
table 示“任何模式”。
OBJECT_NAME
被检测对象的名称。这应该是 Literals 名称,或'%'
table 示“任何对象”。
ENABLED
是否检测对象的事件。该值为YES
或NO
。可以修改此列。
TIMED
对象的事件是否定时。该值为YES
或NO
。可以修改此列。
setup_objectstable 允许TRUNCATE TABLE。它删除行。