这线程
表包含每个服务器线程的行。每行包含有关线程的信息,并指示是否启用了监视。对于监视线程的性能架构,这些东西必须是真的:
这
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
要想记录历史事件,必须满足以下条件:
适当的历史相关的消费者
setup_consumers.
必须启用表。例如,等待事件登录events_waits_history
和Events_waits_history_long.
表需要相应的events_waits_history
和Events_waits_history_long.
消费者是是的
.这
线程.History.
列必须是是的
.日志记录仅发生从启用中启用的仪器生成的线程事件
setup_instruments.
桌子。
对于前景线程(由客户端连接产生),初始值仪器
和历史
列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
表只影响修改后后续创建的前景线程,而不是现有线程。要影响现有线程,请修改仪器
和历史
列的线程
表行。