Как уменьшить время на запись в БД

«Как уменьшить время на запись в БД» — вопрос из категории Базы данных, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Используй батчинг — группируй несколько запросов в один. Например, в PostgreSQL с pgx:

batch := &pgx.Batch{}
for _, item := range items {
    batch.Queue("INSERT INTO table (col) VALUES ($1)", item.Value)
}
results := conn.SendBatch(ctx, batch)
defer results.Close()

Оптимизации:

  1. Транзакции — оборачивай операции в транзакцию
  2. Подготовленные запросы — используй Prepare для повторяющихся запросов
  3. Параллелизм — применяй worker-пулы для параллельных записей (но осторожно с конкурентностью в транзакциях)
  4. Индексы — временно отключай индексы при массовой вставке, затем включай обратно

Для больших объемов данных рассмотри инструменты вроде COPY (PostgreSQL) или bulk-insert.