的setup_objects
表控制性能模式是否监视特定的表和存储的程序对象。最初的setup_objects
内容如下所示:
SELECT * FROM performance_schema.setup_objects;+-------------+--------------------+-------------+---------+-------+ | OBJECT_TYPE | OBJECT_SCHEMA | OBJECT_NAME | |定时启用 | +-------------+--------------------+-------------+---------+-------+ | mysql事件| | % |没有| | | |事件performance_schema | % |没有| | | |事件information_schema | % |没有| | |事件 | % | % | mysql函数是的| | | | | % |没有| | | |函数performance_schema | % |没有| | | |函数information_schema | % |没有| | | | %的函数| % |是|是| | | mysql程序| % |没有| | | |过程performance_schema | % |没有| | | |过程information_schema | % |没有| | |过程 | % | % | mysql表是的| | | | | % |没有| | | |表performance_schema | % |没有| | | |表information_schema | % |没有| | |表 | % | % | 是的| | | |触发mysql | % |没有| | | |触发performance_schema | % |没有| | | |触发information_schema | % |没有| | |触发器 | % | % | 是的| |+-------------+--------------------+-------------+---------+-------+
修改setup_objects
表立即影响对象监视。
的OBJECT_TYPE
列指示行应用到的对象的类型。表格
过滤影响表I/O事件(等待/ io /表/ sql /处理程序
仪器)和表锁定事件(等待/锁定/表/ sql /处理程序
仪器)。
的OBJECT_SCHEMA
和OBJECT_NAME
列应该包含文字模式或对象名称,或者“%”
来匹配任何名称。
的启用
列表示是否监控匹配对象,和定时
是否收集定时信息。设置定时
列影响性能架构表内容,如中所述第5.1节,“性能模式事件定时”.
默认对象配置的效果是检测除控件中的对象之外的所有对象mysql
,INFORMATION_SCHEMA
,performance_schema
数据库。(表中INFORMATION_SCHEMA
数据库的内容无论如何都不是工具化的setup_objects
;的行information_schema. %
简单地将此默认设置为显式的。)
当性能模式检查匹配时setup_objects
,它会先尝试找到更具体的匹配项。对于匹配给定的行OBJECT_TYPE
, Performance Schema按以下顺序检查行:
行
OBJECT_SCHEMA = '
和文字
'OBJECT_NAME = '
.文字
'行
OBJECT_SCHEMA = '
和文字
'OBJECT_NAME = ' % '
.行
OBJECT_SCHEMA = ' % '
和OBJECT_NAME = ' % '
.
例如,对于一个表db1.t1
,查看性能架构表格
行的匹配“db1”
和“t1”
,然后“db1”
和“%”
,然后“%”
和“%”
.匹配发生的顺序很重要,因为不同的匹配setup_objects
行可以有不同的启用
和定时
值。
的内容组合为与表相关的事件setup_objects
与setup_instruments
决定是否使能仪器和是否使能仪器的时间:
中的行匹配的表
setup_objects
时,表仪器才产生事件启用
是是的
在这两个setup_instruments
和setup_objects
.的
定时
两个表中的值被组合,因此只有当两个值都为时才会收集计时信息是的
.
对于存储程序对象,性能架构采用启用
和定时
列直接从setup_objects
行。没有价值的结合setup_instruments
.
假设setup_objects
包含以下表格
应用于的行db1
,db2
,db4
:
+-------------+---------------+-------------+---------+-------+ | OBJECT_TYPE | OBJECT_SCHEMA | OBJECT_NAME | |定时启用 | +-------------+---------------+-------------+---------+-------+ | t1表| db1 | |是|是| | |表db1 | t2 |没有| | | db2表| | % |是的| | | |表db4 | % |没有| | |表 | % | % | 是的|是的 | +-------------+---------------+-------------+---------+-------+
如果一个对象相关的工具在setup_instruments
有一个启用
的价值没有
,则不监视对象的事件。如果启用
值是是的
时,事件监控根据启用
相关的价值setup_objects
行:
db1.t1
事件监控db1.t2
事件不受监控db2.t3
事件监控db3.t4
事件不受监控db4.t5
事件监控
的组合也适用类似的逻辑定时
列的setup_instruments
和setup_objects
表确定是否收集事件定时信息。
如果持久表和临时表具有相同的名称,则根据setup_objects
对于两者,行以相同的方式发生。不可能只对一个表启用监视而不对另一个表启用监视。但是,每个表都是单独检测的。