в постгре?
Тобишь у меня есть набор данных, который я хочу вставить в БД, но если по ключу уникальности (в моем случае это несколько полей) уже лежат данные - то просто обновить ?
Просто делаете обычный upsert (insert ... on conflict do update ...). Быстрее всего, думаю, будет просто пачку значений для insert в один запрос кинуть (несколько сотен или тысяч). Хотя тут ужэ можно поиграться -- сделать это жэ с выборкой из временной таблицы или сделать подготовленные запросы. Но не думаю, что такие игры что-то существенно ускорят.
Опять жэ, немого зависит от данных и таблиц. Если там много работы по переписыванию индэксов -- то ужэ будет неважно, хоть по одному INSERT делать. Если там три простых индэкса и пяток чисел -- то лучшэ будет подготовленный запрос (но всё равно с большым количество VALUES) или табличка, в которую сделали COPY. Ну, и на самом деле при большых размерах данных -- можно пытаться так или иначе делать индэксы "потом". Но если с таблицэй ещё что-то работает в процэссе -- то это сложно.
Обсуждают сегодня