@BarneyGumble

Какой самый быстрый способ сравнения двух таблиц MySQL?

Добрый день

У меня есть в 2-х разных MySQL 2 таблицы: основная, обновляемая с какой-то периодичностью внутренними системами и вторая - с которой предстоит работать мне, которая раз в день должна соотноситься с основной, и сопоставлять с ней данные

Кол-во и название полей в обоих таблицах идентично

Если в основной что-то добавляется/обновляется, то и в моей то же самое должно добавиться/обновиться, и соответственно если удаляется, то и у меня должна та же запись удалиться

Главная проблема - нет возможности запускать необходимые скрипты в момент изменения записей в основной таблице. Есть возможность только раз в сутки через Cron запускать какой-то скрипт, который будет производить такую проверку и сопоставление

Какой есть самый быстрый и оптимальный способ реализации этой задачи?
Пока на ум приходит только ежесуточное затирание полностью моей базы и полный импорт выкачки из основной. Но морально трудно принять на реализацию такой толстокожий подход :)
  • Вопрос задан
  • 559 просмотров
Пригласить эксперта
Ответы на вопрос 1
Wolfnsex
@Wolfnsex Куратор тега PHP
Если не хочешь быть первым - не вставай в очередь!
На вскидку, самый "адекватный" способ, называется "репликация", на счёт репликации отдельных таблиц в MySQL не уверен, но в целом можно что-то придумать.

Если репликация по каким-то причинам не устраивает, я думаю, оптимальнее всего будет не сравнивать две базы/таблицы постоянно, а например, создать триггер, который при обновлении/добавлении новой записи (возможно, это будет 2 триггера или более) будет писать в 3-ю таблицу, что "добавился" такой-то элемент или "обновился такой-то элемент", потом в "час Х" Вы собираете данные из этой таблицы, делаете выборку нужных записей (по ID'шнику например) и отправляете на дочерний сервер.

P.S. Это один из простых вариантов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы