От новичка до гуру: Курсы программирования на CyberDuff

MySQL performance_schema не работает должным образом?

У меня есть сервер сообщества MySQL 5.6.19, работающий на моем Ubuntu 14.04. В последнее время я пытаюсь контролировать сервер MySQL, используя performance_schema. Раньше я делал это, запуская запрос SHOW FULL PROCESSLIST каждые 5 секунд с помощью cronjob.

Я настроил таблицу 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_history теперь должна иметь возможность захватывать запросы, но почему-то это не так. Ниже приводится результат.

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

Я не понимаю, почему он не регистрирует никаких запросов?

30.10.2014

Ответы:


1

Схема производительности записывает данные при соблюдении трех условий:

  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).

Чтобы увидеть, какие потребители инструментированы, или изменить это, используйте select/update для таблицы setup_consumers.

Эта часть кажется подходящей для вопроса, поэтому проверьте части (1) и (2).

18.11.2014
  • Но что, если в таблицах setup_% ничего нет? 29.04.2016

  • 2

    В качестве примечания: если внутри таблиц setup_% ничего нет, вам может потребоваться включить схему производительности,

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

    26.04.2018
    Новые материалы

    Отслеживание состояния с течением времени с дифференцированием снимков
    Время от времени что-то происходит и революционизирует часть моего рабочего процесса разработки. Что-то более забавное вместо типичного утомительного и утомительного процесса разработки. В..

    Я предполагаю, что вы имеете в виду методы обработки категориальных данных.
    Я предполагаю, что вы имеете в виду методы обработки категориальных данных. Пожалуйста, проверьте мой пост Инструментарий специалиста по данным для кодирования категориальных переменных в..

    Игра в прятки с данными
    Игра в прятки с данными Я хотел бы, чтобы вы сделали мне одолжение и ответили на следующие вопросы. Гуглить можно в любое время, здесь никто не забивается. Сколько регионов в Гане? А как..

    «Раскрытие математических рассуждений с помощью Microsoft MathPrompter и моделей больших языков»
    TL;DR: MathPrompter от Microsoft показывает, как использовать математические рассуждения с большими языковыми моделями; 4-этапный процесс для улучшения доверия и рассуждений в математических..

    Раскройте свой потенциал в области разработки мобильных приложений: Абсолютная бесплатная серия
    Глава 6: Работа в сети и выборка данных Глава 1: Введение в React Native Глава 2: Основы React Native Глава 3: Создание пользовательского интерфейса с помощью React Native Глава 4:..

    Все о кейсах: Camel, Snake, Kebab & Pascal
    В программировании вы сталкивались с ними при именовании переменной, класса или функции. Поддержание согласованности типов и стилей случаев делает ваш код более читабельным и облегчает совместную..

    Как работает дистанционное парное программирование и почему оно может изменить вашу жизнь
    Серебряная пуля от одиночества и отвлекающих факторов во время обучения программированию Независимо от того, работаете ли вы или учитесь удаленно, велика вероятность, что одиночество и..