MySQL запускает результаты в пропущенных строках - PullRequest
0 голосов
/ 21 октября 2019

Синхронизация данных между двумя таблицами MySQL, которые принадлежат одному и тому же серверу, но разные базы данных говорят, что db1 и db2.

У меня было три триггера:

1) Вставьте строку в db2> table1, еслистрока вставляется в db1> table1

2) Обновить строку в db2> table1, если строка обновляется в db1> table1

3) Удалить строку из db2> table1, если строка удаляется изdb1> table1

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

Например, скажем, 10 записейвставлен в db1> table1, начиная с идентификатора 100851

я вижу следующие записи

1) 100851
2) 100852
3) 100853
4) 100854 -Missing
5) 100855 -Missing
6) 100856 -Missing
7) 100857
8) 100858
9) 100859
10)100860

Мне не хватает строк 100854, 100855, 100856 из db1> table1, хотя эти записи были вставлены изатем пропал без вести, поскольку идентификатор отсутствующей строки действительно был сгенерирован. Проверенные журналы дважды, никто не удалил их, и я могу воссоздать проблему, вставляя более 50 записей в минуту. Я попытался удалить триггер обновления и удаления, но проблема остается.

Я не могу использовать синхронизацию mysql, поскольку все, что обновляется в db2> table1, должно обновляться в таблице db1>, поэтому мне нужно что-то, что работает на основе каждоговставка, обновление и удаление, а не полная синхронизация.

Я прошел почти все подобные вопросы о переполнении стека. Задания Cron влияют на производительность. я попытался создать новую таблицу, в которую будет вставлен последний идентификатор, а затем запустить задание cron для записей, у которых идентификатор строки больше, чем последний вставленный идентификатор, но он все еще не может быть в режиме реального времени.

Что бы я хотелзнать:

1) Альтернатива триггерам, которые могут быть несколько в реальном времени

2) Любой способ избежать этой аномалии отсутствующих записей с триггерами

3) Любые другие предложения, которыеможет быть реализовано с использованием PHP

...