2015-03-25 4 views
0

Я хочу написать прослушиватель, который обнаруживает изменения DML в таблице и выполняет некоторые действия. Этот слушатель не может быть встроен в приложение и запускается отдельно.Можем ли мы включить двоичное ведение mysql для конкретной таблицы

Я думал, пусть приложение напишет в таблицу blackhole, и я обнаружу изменения из файла двоичного журнала.

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

Спасибо!

+1

«обнаруживает изменения DML на столе и выполняет некоторые действия». Вы пробовали TRIGGERS? –

+0

действия включают вызов java-метода, который находится вне mysql, поэтому триггеры не помогут –

+0

В чем проблема? Вы не можете ** отслеживать изменение DML ** ИЛИ вы можете отслеживать DML, но не можете ** записать слушателя **? Будет плохой практикой кодирования, чтобы вызвать любой код функции за пределами базы данных, используя триггер/хранимую процедуру. –

ответ

0

SQL - это лучший способ отслеживать изменение и функцию DML на основе этого. Но, как вы хотите, чтобы изучить другие варианты, вы можете попробовать

  1. написание cronjob с General Query Log, который включает в себя операторы SELECT/SHOW, а также которые вам не нужны

  2. mysqlbinlog: Offcourse это замедляет работу поскольку он в основном используется для репликации и восстановления данных.

Смежные вопросы