Определение, кто делает много запросов INSERT в MySQL - PullRequest
2 голосов
/ 28 февраля 2010

Недавно я заметил, что мой сервер MySQL обрабатывает много INSERT. Как я могу определить пользователя или базу данных, на которой эта активность ??

insert    33 k    97.96 k 44.21%

Ответы [ 3 ]

1 голос
/ 28 февраля 2010

SHOW FULL PROCESSLIST будет возвращать каждое соединение, пользователя и запрос, которые в данный момент активны, если у вас есть разрешение ПРОЦЕСС. Это больше для насущных проблем, но у него меньше всего накладных расходов.

Если вы используете ведение журнала запросов, то вместо обычного журнала запросов (это может заметно замедлить работу сервера) используйте двоичный журнал , чтобы сохранить его минимальным. Он только отслеживает действия, которые изменяют таблицы, такие как CREATE / DROP / ALTER и INSERT / UPDATE / REPLACE.

1 голос
/ 28 февраля 2010

Что вы должны периодически регистрировать (раз в минуту):

  1. ПОКАЗАТЬ ПОЛНЫЙ ПРОЦЕССЛИСТ;
  2. ПОКАЗАТЬ ГЛОБАЛЬНЫЙ СТАТУС;

с включенным медленным журналом, это даст вам огромный шанс, что любой вопрос может быть решен.

Если у вас включено двоичное ведение журнала, вы можете проверить время / пользователя, который вставил строки.
Если у вас включен общий журнал, то все регистрируется.

0 голосов
/ 28 февраля 2010

Посмотрите в ваших журналах запросов. Это покажет каждое соединение с MySQL и покажет каждую команду, которую они выполняют.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...