该threads
表包含每个服务器线程的一行。每行包含有关线程的信息,并指示是否为其启用监控。对于监视线程的性能模式,这些事情必须是真实的:
表中的
thread_instrumentation
消费者setup_consumers
必须是YES
。该
threads.INSTRUMENTED
列必须是YES
.仅对表中启用的工具生成的那些线程事件进行监视
setup_instruments
。
表中的INSTRUMENTED
列
threads
表示每个线程的监控状态。对于前台线程(由客户端连接产生),初始
INSTRUMENTED
值取决于与线程关联的用户帐户是否与setup_actors
表中的任何行匹配。
对于后台线程,没有关联的用户。
默认情况下INSTRUMENTED
是不咨询的。
YES
setup_actors
初始setup_actors
内容如下所示:
mysql> SELECT * FROM performance_schema.setup_actors;
+------+------+------+
| HOST | USER | ROLE |
+------+------+------+
| % | % | % |
+------+------+------+
和列应包含文字主机名或用户名,或
HOST
匹配任何名称。
USER
'%'
Performance Schema 使用HOST
和
USER
列来匹配每个新的前台线程。(ROLE
未使用。)
如果有任何行匹配,则INSTRUMENTED
线程的值变为
,
否则。这使得可以根据主机、用户或主机和用户的组合有选择地应用检测。
YES
NO
默认情况下,为所有新的前台线程启用监控,因为该setup_actors
表最初包含一个包含'%'
和
HOST
的行USER
。要执行更有限的匹配,例如仅对某些前台线程启用监控,您必须删除该行,因为它匹配任何连接。
假设你修改
setup_actors
如下:
TRUNCATE TABLE performance_schema.setup_actors;
现在setup_actors
是空的,没有可以匹配传入连接的行。因此,性能模式将INSTRUMENTED
列设置为NO
用于所有新的前台线程。
假设您进一步修改
setup_actors
:
INSERT INTO performance_schema.setup_actors
(HOST,USER,ROLE) VALUES('localhost','joe','%');
INSERT INTO performance_schema.setup_actors
(HOST,USER,ROLE) VALUES('%','sam','%');
现在 Performance Schema 确定如何
INSTRUMENTED
为新连接线程设置值,如下所示:
如果
joe
从本地主机连接,连接匹配第一个插入的行。如果
joe
从任何其他主机连接,则没有匹配项。如果
sam
从任何主机连接,连接匹配第二个插入的行。对于任何其他连接,都没有匹配项。
对setup_actors
表的修改仅影响修改后创建的前台线程,而不影响现有线程。要影响现有线程,请修改表行的INSTRUMENTED
列
threads
。