10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载 本手册摘录

27.4.5按对象预过滤

setup_objects.表控制Performance Schema是否监视特定的表和存储的程序对象。最初的setup_objects.内容是这样的:

mysql> 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_SCHEMAOBJECT_NAME列应该包含一个文字模式或对象名称,或者“%”匹配任何名称。

启用列表示是否监控匹配的对象定时是否收集定时信息。设置定时列影响Performance Schema表内容,如中所述第27.4.1节,“性能模式事件计时”

对象中的对象除外,默认对象配置的效果是检测所有对象mysqlINFORMATION_SCHEMA,performance_schema数据库。(表中INFORMATION_SCHEMA的内容都不会对数据库进行检测setup_objects.;该行information_schema. %简单地让这个默认值显式。)

当性能模式检查匹配项时setup_objects.,它首先尝试找到更具体的匹配。匹配给定的行OBJECT_TYPE,性能模式按以下顺序检查行:

  • 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_instrumentssetup_objects.

  • 定时将两个表中的值合并,以便仅在两个值都为时收集计时信息是的

对于存储的程序对象,Performance Schema接受启用定时直接从setup_objects.行。没有价值观的结合setup_instruments

假设setup_objects.包含以下表格适用于db1db2,db4

+ ------------- + -------------- + ------------- + --------- + ------- + |object_type |object_schema |object_name |启用|定时|+ ------------- + -------------- + ------------- + --------- + ------- + |表|DB1 |t1 | YES | YES | | TABLE | db1 | t2 | NO | NO | | TABLE | db2 | % | YES | YES | | TABLE | db3 | % | NO | NO | | TABLE | % | % | YES | YES | +-------------+---------------+-------------+---------+-------+

如有物件相关的文书setup_instruments有一个启用的价值没有,对象的事件不受监控。如果启用值是是的,事件监控发生根据启用有关的价值setup_objects.行:

  • db1.t1事件监控

  • db1.t2事件不受监控

  • db2.t3事件监控

  • db3.t4事件不受监控

  • db4.t5事件监控

类似的逻辑也适用于组合定时列的setup_instrumentssetup_objects.表,以确定是否收集事件定时信息。

如果持久性表和临时表具有相同的名称,则匹配setup_objects.行以相同的方式出现。不可能只监视一个表而不监视另一个表。但是,每个表都是单独检测的。