MySQL performance_schema不能正常工作?

我在我的Ubuntu 14.04上运行MySQL 5.6.19社区服务器。 最近我一直在试图使用performance_schema来监视MySQL服务器。 以前我曾经通过使用cronjob每5秒运行一次SHOW FULL PROCESSLIST查询来做到这一点。

我configuration了performance_schema.setup_consumers表如下。

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没有启用。 我启用它如下。

 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_historyperformance在应该能够捕获查询,但不知道它不是。 以下是结果。

 mysql> select count(sql_text) from events_statements_history; +-----------------+ | count(sql_text) | +-----------------+ | 0 | +-----------------+ 

我不明白为什么它不logging任何查询?

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

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

主题

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

要检查是否检测线程:

 select THREAD_ID, NAME, PROCESSLIST_ID, PROCESSLIST_USER, PROCESSLIST_HOST, INSTRUMENTED from threads; 

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

仪器

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

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

 select * from setup_instruments where name like "statement/%" and enabled='NO'; 

为了处理所有查询:

 update setup_instruments set enabled="YES" where name like "statement/%"; 

消费者

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

要查看哪些使用者已被检测,或者要更改此消息,请使用表setup_consumers上的选择/更新。

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