Как оптимизировать запросы Mysql, и алгоритм (Laravel)

Есть условная таблица с полями user_id,payment_id (уникальное),provider_id,amount. Есть метод интеграции с другой системой, который раз в сутки присылает большое количество данных (200000-500000), это могут быть как новые данные, так и те которые необходимо обновить.

Я предполагал сделать так: Выставить индексы на payment_id

Реализовать очереди (и пачками по 1000шт), и каждую запись проверять на существование в бд, и если существует, то - обновить, а если нет - то добавить.

Но я не уверен, что это оптимальный вариант, т.к. проверять каждую запись на существование - дело трудоемкое. Возможно есть решения проще?


Ответы (1 шт):

Автор решения: Ruslan Mirzapulatov

Воспользовался ON DUPLICATE KEY UPDATE - результатом остался очень доволен

→ Ссылка