Несколько способов. Первый: собираешь VALUES руками — INSERT INTO t (a, b) VALUES ($1, $2), ($3, $4) — неудобно но быстро. Второй: pgx.Batch — добавляешь несколько запросов, отправляешь разом: batch.Queue("INSERT ...", args...) для каждой строки, pool.SendBatch(ctx, batch). Третий: COPY protocol — самый быстрый для больших объёмов (pgx.CopyFrom). Четвёртый: unnest — INSERT INTO t SELECT * FROM unnest($1::int[], $2::text[]). Для 10-100 строк — batch/VALUES, для тысяч — COPY.
Как делать batch insert?
Middle
358 просмотровAFK Offer AI
Задача: реализуйте таймаут для длительной операции через select и context