这线程
表包含每个服务器线程的行。每行包含有关线程的信息,并指示是否启用了监视。对于监视线程的性能架构,这些东西必须是真的:
这
thread_instrumentation
消费者在setup_consumers.
表必须是是的
.这
线程。仪器
列必须是的
.监视仅发生从启用的仪器生产的那些线程事件发生
setup_instruments.
表格
这线程
表还指示每个服务器线程是否执行历史事件日志记录。这包括等待、阶段、语句和事务事件以及影响到这些表的日志:
Events_waits_history events_waits_history_long events_stages_history events_stages_history_long events_statements_history events_transactions_history events_transactions_history_long events_transactions_history_long events_statements_history 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.
表格
对于前台线程(由客户机连接产生),初始值仪器
和历史
列线程
表的行由与线程关联的用户帐户是否与setup_actors
表格值来自启用
和历史
匹配的列setup_actors
表行。
对于后台线程,没有关联的用户。仪器
和历史
是是的
默认情况下,setup_actors
没有咨询。
最初的setup_actors
内容如下所示:
mysql> SELECT * FROM table_schema .setup_actors;+------+------+------+---------+---------+ | 主机用户| | | |启用历史作用 | +------+------+------+---------+---------+ | % | % | % | 是的|是的 | +------+------+------+---------+---------+
这主持人
和用户
列应该包含主机名或用户名,或者“%”
匹配任何名称。
这启用
和历史
列指示是否为匹配的线程启用检测和历史事件日志记录,这取决于前面描述的其他条件。
当Performance Schema检查每个新的前台线程是否匹配时setup_actors
,它首先尝试查找更具体的匹配项,使用用户
和主持人
列 (角色
是未使用的):
行
用户='
和文字
'host ='
.文字
'行
用户='
和文字
'主机= ' % '
.行
用户='%'
和host ='
.文字
'行
用户='%'
和主机= ' % '
.
匹配发生的顺序是事项,因为不同的匹配setup_actors
行可能有不同的用户
和主持人
值。这使得可以根据主机、用户或帐户(用户和主机组合),选择性地应用检测和历史事件日志启用
和历史
列值:
当最好的匹配是一排
启用= YES
, 这仪器
线程的价值变为是的
.当最好的匹配是一排历史= YES
, 这历史
线程的价值变为是的
.当最好的匹配是一排
启用=没有
, 这仪器
线程的价值变为不
.当最好的匹配是一排历史=否
, 这历史
线程的价值变为不
.没有找到匹配项时,
仪器
和历史
线程的值变成不
.
这启用
和历史
列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
表只影响修改后后续创建的前景线程,而不是现有线程。要影响现有线程,请修改仪器
和历史
列线程
表行。