首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL performance_schema不能正常工作吗?

MySQL performance_schema不能正常工作吗?
EN

Stack Overflow用户
提问于 2014-10-30 18:33:01
回答 2查看 4.8K关注 0票数 1

我在我的Ubuntu14.04上运行了MySQL 5.6.19社区服务器。最近,我一直试图使用MySQL监控performance_schema服务器。以前,我通过使用cron作业每5秒运行一次显示完整PROCESSLIST查询来完成这一任务。

我按照以下方式配置了performance_schema.setup_consumers表。

代码语言:javascript
复制
mysql> use performance_schema;
mysql> select * from setup_consumers;
+--------------------------------+---------+
| NAME                           | ENABLED |
+--------------------------------+---------+
| events_stages_current          | NO      |
| events_stages_history          | NO      |
| events_stages_history_long     | NO      |
| events_statements_current      | YES     |
| events_statements_history      | NO      |
| events_statements_history_long | NO      |
| events_waits_current           | NO      |
| events_waits_history           | NO      |
| events_waits_history_long      | NO      |
| global_instrumentation         | YES     |
| thread_instrumentation         | YES     |
| statements_digest              | YES     |
+--------------------------------+---------+

默认情况下,不启用events_statements_history。我启用了它如下所示。

代码语言:javascript
复制
mysql> update setup_consumers set enabled="YES" where name="events_statements_history";
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from setup_consumers;
+--------------------------------+---------+
| NAME                           | ENABLED |
+--------------------------------+---------+
| events_stages_current          | NO      |
| events_stages_history          | NO      |
| events_stages_history_long     | NO      |
| events_statements_current      | YES     |
| events_statements_history      | YES     |
| events_statements_history_long | NO      |
| events_waits_current           | NO      |
| events_waits_history           | NO      |
| events_waits_history_long      | NO      |
| global_instrumentation         | YES     |
| thread_instrumentation         | YES     |
| statements_digest              | YES     |
+--------------------------------+---------+

现在启用了,events_statements_history表现在应该能够捕获查询,但不知怎么的,它不能捕获查询。结果如下。

代码语言:javascript
复制
mysql> select count(sql_text) from events_statements_history;
+-----------------+
| count(sql_text) |
+-----------------+
|               0 |
+-----------------+

我不明白它为什么没有登录任何查询?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-18 08:28:04

当满足三个条件时,性能模式会记录数据:

  1. 正在运行的线程被检测。
  2. 当前执行的工具已启用。
  3. 要记录的数据的使用者已启用。

线程

默认情况下,每个线程(1)都被检测。

要检查线程是否被检测到:

代码语言:javascript
复制
select THREAD_ID, NAME, PROCESSLIST_ID, PROCESSLIST_USER, PROCESSLIST_HOST, INSTRUMENTED from threads;

若要更改默认情况下检测哪些线程,请使用表setup_actors。

仪器

默认情况下,为语句(又名查询)启用工具(2)。

若要查看哪些查询未被检测到:

代码语言:javascript
复制
select * from setup_instruments where name like "statement/%" and enabled='NO';

若要对所有查询进行分析:

代码语言:javascript
复制
update setup_instruments set enabled="YES" where name like "statement/%";

消费者

默认情况下,只有少数消费者被检测(3)。

若要查看哪些使用者已被检测,或要更改此,请在表setup_consumers上使用select / update。

这个部分对问题似乎很好,所以请检查第(1)和(2)部分。

票数 2
EN

Stack Overflow用户

发布于 2018-04-26 11:20:29

请注意,如果setup_%表中没有任何内容,则可能需要启用性能模式,

https://dev.mysql.com/doc/refman/5.5/en/performance-schema-quick-start.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26660763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档