的线程
表包含每个服务器线程的一行。每一行包含关于线程的信息,并指示是否为其启用了监视。为了让性能模式监视线程,以下条件必须为真:
的
thread_instrumentation
消费者在setup_consumers
表必须是的
.的
线程。检测
列必须是的
.控件中启用的仪器产生的线程事件才会发生监视
setup_instruments
表格
的线程
表还指示每个服务器线程是否执行历史事件日志记录。这包括等待、阶段、语句和事务事件,并影响到这些表的日志记录:
Events_waits_history events_waits_history_long events_stages_history 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
消费者要小心是的
.的
线程。历史
列必须是的
.控件中启用的工具产生的线程事件才会发生日志记录
setup_instruments
表格
对于前台线程(由客户机连接产生),的初始值检测
而且历史
列线程
表中的行由与线程关联的用户帐户是否匹配setup_actors
表格值来自启用
而且历史
匹配的列setup_actors
表行。
对于后台线程,没有关联的用户。检测
而且历史
是是的
默认情况下,setup_actors
不是咨询。
最初的setup_actors
内容如下所示:
SELECT * FROM performance_schema.setup_actors;+------+------+------+---------+---------+ | 主机用户| | | |启用历史作用 | +------+------+------+---------+---------+ | % | % | % | 是的|是的 | +------+------+------+---------+---------+
的宿主
而且用户
列应该包含主机或用户名的文字“%”
来匹配任何名称。
的启用
而且历史
列指示是否为匹配线程启用检测和历史事件日志记录,取决于前面描述的其他条件。
当性能模式为每个新的前台线程检查匹配时setup_actors
,它首先尝试查找更特定的匹配项,使用用户
而且宿主
列(角色
是未使用的):
行
用户= '
而且文字
'主机= '
.文字
'行
用户= '
而且文字
'主机= ' % '
.行
用户= ' % '
而且主机= '
.文字
'行
用户= ' % '
而且主机= ' % '
.
匹配发生的顺序很重要,因为不同的匹配setup_actors
行可以有不同的用户
而且宿主
值。这使检测和历史事件日志记录能够根据启用
而且历史
列值:
当最好的配是一排配
启用= YES
,检测
线程的值变为是的
.当最好的配是一排配历史= YES
,历史
线程的值变为是的
.当最好的配是一排配
启用=没有
,检测
线程的值变为没有
.当最好的配是一排配历史=没有
,历史
线程的值变为没有
.如果没有找到匹配,则
检测
而且历史
线程的值变为没有
.
的启用
而且历史
列setup_actors
行可以设置为是的
或没有
彼此独立。这意味着您可以与是否收集历史事件分开启用检测。
默认情况下,监视和历史事件收集是为所有新的前台线程启用的,因为setup_actors
表最初包含的行“%”
对于这两个宿主
而且用户
.要执行更有限的匹配,例如只对某些前台线程启用监视,您必须更改此行,因为它匹配任何连接,并添加更特定的行宿主
/用户
组合。
假设你修改setup_actors
如下:
更新performance_schema。setup_actorsSET ENABLED = 'NO', HISTORY = 'NO' WHERE HOST = '%' AND USER = '%'; INSERT INTO performance_schema.setup_actors (HOST,USER,ROLE,ENABLED,HISTORY) VALUES('localhost','joe','%','YES','YES'); INSERT INTO performance_schema.setup_actors (HOST,USER,ROLE,ENABLED,HISTORY) VALUES('hosta.example.com','joe','%','YES','NO'); INSERT INTO performance_schema.setup_actors (HOST,USER,ROLE,ENABLED,HISTORY) VALUES('%','sam','%','NO','YES');
的更新
语句更改默认匹配,以禁用检测和历史事件收集。的插入
语句为更特定的匹配添加行。
现在,性能模式决定如何设置检测
而且历史
新连接线程的值如下:
如果
乔
从本地主机连接,连接匹配第一个插入的行。的检测
而且历史
线程的值变为是的
.如果
乔
连接从hosta.example.com
,则连接匹配第二个插入的行。的检测
线程的值变为是的
和历史
价值就没有
.如果
乔
从任何其他主机连接,没有匹配。的检测
而且历史
线程的值变为没有
.如果
山姆
从任何主机连接,连接匹配插入的第三行。的检测
线程的值变为没有
和历史
价值就是的
.对于任何其他连接,与
宿主
而且用户
设置为“%”
匹配。这一行现在有启用
而且历史
设置为没有
,所以检测
而且历史
线程的值变为没有
.
修改setup_actors
表只影响修改后创建的前台线程,不影响现有线程。要影响现有线程,请修改检测
而且历史
列线程
表行。