TGViewer
Библиотека Go-разработчика | Golang Библиотека Go-разработчика | Golang @goproglib · 24.1K subscribers
Post #7447 3.67K
✏️ Batch Insert в GORM. Не вставляйте записи по одной

Одна из самых частых ошибок при работе с GORM выглядит так:


for _, user := range users {
db.Create(&user)
}


Если в массиве 10 000 элементов, приложение отправит 10 000 отдельных INSERT-запросов.

✅ Гораздо эффективнее вставлять записи пачкой:


db.Create(&users)


GORM автоматически разобьёт данные на батчи, если это потребуется.

💡 Если же размер батча нужно контролировать самостоятельно, используйте CreateInBatches:


db.CreateInBatches(users, 1000)


Например, при 10 000 записей и размере батча 1000 будет выполнено всего 10 INSERT-запросов вместо 10 000.

Размер пачки зависит от объёма данных, но на практике чаще всего используют значения от нескольких сотен до пары тысяч записей.

Batch Insert уменьшает количество сетевых запросов, снижает нагрузку на базу данных и значительно ускоряет массовую загрузку данных практически без изменений бизнес-логики.


📍 Навигация: Вакансии • Задачи • Собесы

🐸 Библиотека Go-разработчика

#GoToProduction
  • 👍 12
  • 🤔 3
  • 🌚 2
  • ❤ 1
  • 🥱 1
More from @goproglib
  1. Sep 23, 2026💥 TCP/IP: что происходит с данными в сети Когда Go-приложение отправляет данные по сети,…
  2. Sep 22, 2026🔴 Встроенные функции len, make, panic — встроенные функции Go, которые можно использовать…
  3. Sep 21, 2026🤩 Go с нуля: серия базовых шпаргалок Собрали путь от Hello, World! до goroutines, channel…
  4. Sep 20, 2026🤔 Вопрос с собеседования по Go Что выведет программа? ❤️ — [1 2 3 4 5] / [1 2 10] 🔥 — [1…
  5. Sep 19, 2026🛠 Rune — open-source IDE и terminal multiplexer на Go Rune объединяет IDE, терминал и AI-…
  6. Sep 18, 2026🤩 SQLite вместо отдельного брокера в Go Watermill поддерживает SQLite Pub/Sub — сообщения…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →