Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Могу ли я как-то отслеживать update/insert? / 10 сообщений из 10, страница 1 из 1
17.07.2018, 18:21
    #39675216
alexnews
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Могу ли я как-то отслеживать update/insert?
Могу ли я как-то уследит в некоторых заданных таблицах что за день изменилось? Интересует как минимум insert/update при этом не прибегая к триггерам?
Если есть какие-то идеи, посоветуйте, пожалуйста, хотя бы идею.
Заранее спасибо.
...
Рейтинг: 0 / 0
17.07.2018, 18:46
    #39675227
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Могу ли я как-то отслеживать update/insert?
Можно включить логгирование запросов (на сервере или, лучше, только нужных запросов в приложении) + сочинить какую-то обработку.
В крайнем случае, ежедневный дамп таблицы + какой-то diff.
ИМХО и то и другое на порядок сложнее триггера.
...
Рейтинг: 0 / 0
17.07.2018, 20:43
    #39675262
alexnews
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Могу ли я как-то отслеживать update/insert?
vkle,

спасибо vkle, проблема в том что нужно отслеживать 30 таблиц, а значит нужно два триггера как минимум на insert и на update. Всего 60 триггеров. Не нравится мне такая идея. Попытаюсь убедить народ поменять таблицы добавив поля inserted_at TIMESTAMP и updated_at on UPDATE TIMESTAMP.
...
Рейтинг: 0 / 0
18.07.2018, 07:54
    #39675380
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Могу ли я как-то отслеживать update/insert?
alexnewsПопытаюсь убедить народ поменять таблицы добавив поля inserted_at TIMESTAMP и updated_at on UPDATE TIMESTAMP.Плохое решение с учётом исходной задачи. При UPDATE будет теряться информация о предыдущих INSERT и UPDATE.

alexnewsнужно отслеживать 30 таблиц, а значит нужно два триггера как минимум на insert и на update. Всего 60 триггеров. Не нравится мне такая идея.Нормальная идея. нет в ней ничего дурного. А генерацию триггеров можно и запрограммировать - одна ХП-шка, и всё...
...
Рейтинг: 0 / 0
18.07.2018, 08:00
    #39675388
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Могу ли я как-то отслеживать update/insert?
Недавно что-то подобное обсуждали.
Идея:
Ночью делаешь резервную копию, разворачиваешь её в другую базу и сравниваешь текущую базу со вчерашней.
...
Рейтинг: 0 / 0
18.07.2018, 14:48
    #39675689
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Могу ли я как-то отслеживать update/insert?
AkinaalexnewsПопытаюсь убедить народ поменять таблицы добавив поля inserted_at TIMESTAMP и updated_at on UPDATE TIMESTAMP.Плохое решение с учётом исходной задачи. При UPDATE будет теряться информация о предыдущих INSERT и UPDATE.Вроде, в исходной задаче не было про полную историю изменений, только "что за день изменилось". Если в итоге требуется только выборка новых/изменившихся записей за последние сколько-то часов, тогда это решение кажется вполне приемлемым.

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

И ещё один минус. Гипотетически, запись может быть и удалена, а это тоже ж своего рода изменение. Дополнительные поля тут не помогут.
...
Рейтинг: 0 / 0
18.07.2018, 15:33
    #39675723
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Могу ли я как-то отслеживать update/insert?
vkleтолько "что за день изменилось"Если за день было несколько изменений, увидим только последнее.Я лично это воспринимаю как всю историю изменения. Если автора устроит только список изменённых объектов - ну тады да.
...
Рейтинг: 0 / 0
20.07.2018, 23:02
    #39677145
alexnews
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Могу ли я как-то отслеживать update/insert?
982183,

проблема в том что таблицы уже по 15-35 млн записей, такое просто не реально сделать.
...
Рейтинг: 0 / 0
20.07.2018, 23:05
    #39677147
alexnews
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Могу ли я как-то отслеживать update/insert?
Akina,

похоже все устраивает. Я сделал триггеры на основные таблицы, триггеры собирают инфу по любому только id и что произошло (insert/update) так как уникальный ключ стоит на id. Пока всех устроило. Если нужно будет уберу уникальность. А маленькие таблички я просто буду копировать полностью там по 500-30000 записей.

Спасибо всем за подсказки.
...
Рейтинг: 0 / 0
21.07.2018, 06:38
    #39677188
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Могу ли я как-то отслеживать update/insert?
alexnewsпроблема в том что таблицы уже по 15-35 млн записей, такое просто не реально сделать.
Если есть ключевое поле, то вполне реально.
10-15 нимут на таблицу.

TIMESTAMP и UPDATE TIMESTAMP конечно выход более эффективный.
Но без ключевого поля и эта сxема будет работать кастрировано.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Могу ли я как-то отслеживать update/insert? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]