Я создаю систему для обновления больших объемов данных через различные CSV-каналы. Обычно я бы просто зацикливал каждую строку в фиде, делаю запрос select, чтобы проверить, существует ли элемент, и вставить/обновить элемент в зависимости от того, существует он или нет.
Я чувствую, что этот метод не очень масштабируемый и может забивать сервер на больших каналах. Мое решение состоит в том, чтобы перебирать элементы как обычные, но хранить их в памяти. Затем на каждые 100 или около того элементы выбирают из этих 100 элементов и получают список существующих элементов в базе данных, которые соответствуют. Затем объедините заявления вставки/обновления вместе и запустите их в базу данных. Это существенно сократило бы поездки в базу данных.
Является ли это достаточно масштабируемым решением и есть ли примеры учебников по импорту больших фидов в продуктивную среду?
Спасибо