Как проверить на уникальность записи при добавление пачкой через bulk в mysql?
Здравствуйте, нуждаюсь в дельном совете. Обрабатываю файлы с коммутаторов для биллинга nest js в 4 инстанса микросервисы, база данны[ mysql, у таблицы есть уникальный ключ для избавления от дублей, данные записываю пачками по 500 штук.
Как можно избежать такую ситуацию, что в пачке из 500 штук будет 1 дубликат и вся пачка не запишется , если игнорить ошибку то дубликаты полетят дальше на биллинг через kafka
Если проверять дубликаты перед записью по одной штуке то это медленно и часто есть блокировки транзакций.
Если у таблицы есть уникальный ключ, то мускуль штатно отбрасывает дубликаты по INSERT IGNORE.
Если вам для дальнейшей обработки нужны только те строки, которые попали в мускуль - прочитайте их обратно...
ошибки о дубликате нету, вся пачка из 500 идёт дальше на биллинг микросервис
А вот это уже ошибка архитектуры. В биллинг должно идти только то, что записано - т.е не все 500 записей, а результат SELECT из таблицы, в которую они сохраняются.