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

27.4.6通过线程预过滤

线程表包含每个服务器线程的行。每行包含有关线程的信息,并指示是否启用了监视。对于监视线程的性能架构,这些东西必须是真的:

  • thread_instrumentation.消费者在setup_consumers.表必须是是的

  • threads.instrumented.列必须是是的

  • 监视仅发生从启用的仪器生产的那些线程事件发生setup_instruments.桌子。

线程表还指示每个服务器线程是否执行历史事件日志记录。这包括等待、阶段、语句和事务事件以及影响到这些表的日志:

events_waits_history events_waits_history_long events_stages_history events_stages_history_long events_statements_history events_statements_history_long events_transactions_history events_transactions_history_long

要想记录历史事件,必须满足以下条件:

对于前景线程(由客户端连接产生),初始值仪器历史列in.线程表行由与线程关联的用户帐户是否与任何行匹配setup_actors桌子。价值来自于此启用历史匹配列setup_actors表行。

对于背景线程,没有相关的用户。仪器历史是的默认情况下,setup_actors没有咨询。

最初的setup_actors内容如下所示:

mysql>从performency_schema.setup_actors中选择*;+ ------ + ------ + ------ + --------- + --------- + |主持人|用户|角色|启用|历史|+ ------ + ------ + ------ + --------- + --------- + |%|%| % | YES | YES | +------+------+------+---------+---------+

主持人用户列应包含文字主机或用户名,或'%'匹配任何名称。

启用历史列指示是否能够对先前描述的其他条件启用匹配线程的仪器和历史事件日志记录。

当Performance Schema检查每个新的前台线程是否匹配时setup_actors,它试图先找到更具体的匹配,使用用户主持人列 (角色未使用):

  • 用户='文字'host ='文字'

  • 用户='文字'主机= ' % '

  • 用户='%'host ='文字'

  • 用户='%'主机= ' % '

匹配发生的顺序是事项,因为不同的匹配setup_actors行可能有不同的用户主持人价值观。这使得仪器和历史事件记录能够基于以下的每个主机,用户或帐户(用户和主机组合)选择地应用。启用历史列值:

  • 当最好的匹配是一排启用= YES, 这仪器线程的价值变为是的.当最好的匹配是一排历史=是的, 这历史线程的价值变为是的

  • 当最好的匹配是一排启用=否, 这仪器线程的价值变为.当最好的匹配是一排历史=否, 这历史线程的价值变为

  • 没有找到匹配项时,仪器历史线程的值成为

启用历史列in.setup_actors可以设置行是的或者独立于彼此。这意味着您可以将仪器分开启用,从您是否收集历史事件。

默认情况下,所有新的前景线程都会启用监视和历史事件集合,因为setup_actors表最初包含一行'%'对彼此而言主持人用户.要执行更有限的匹配(比如只对某些前台线程启用监视),必须更改这一行,因为它匹配任何连接,并添加更具体的行主持人/用户组合。

假设你修改了setup_actors如下:

更新performency_schema.setup_actors设置为启用='否',历史记录='否'其中host ='%'和user ='%';插入performance_schema.setup_actors(主机,用户,角色,启用,历史记录)值('localhost','joe','%','是','是');插入performance_schema.setup_actors(主机,用户,角色,启用,历史记录)值('hosta.example.com','joe','%','是','否');插入perficity_schema.setup_actors(主机,用户,角色,启用,历史记录)值('%','sam','%','否','是');

更新语句更改默认匹配以禁用仪器和历史事件集合。这插入语句为更具体的匹配添加行。

现在性能模式确定了如何设置的仪器历史新连接线程的值如下:

  • 如果从本地主机连接,连接与插入的第一行匹配。这仪器历史线程的值成为是的

  • 如果连接hosta.example.com.,连接与第二个插入的行匹配。这仪器线程的价值变为是的历史价值成为

  • 如果从任何其他主机连接,没有匹配。这仪器历史线程的值成为

  • 如果山姆从任何主机连接,连接与第三个插入的行匹配。这仪器线程的价值变为历史价值成为是的

  • 对于任何其他连接,行有主持人用户调成'%'火柴。现在这个行已经存在启用历史调成, 所以仪器历史线程的值成为

修改对setup_actors表只影响修改后后续创建的前景线程,而不是现有线程。要影响现有线程,请修改仪器历史列的线程表行。