TGViewer
Node.js Backend | YeaHub Node.js Backend | YeaHub @yeahub_node_backend · 465 subscribers
Post #430 202
🐱 DataLoader и проблема N+1

Когда ты делаешь запрос на список сущностей, а для каждой из них внутри цикла идёт ещё один запрос — поздравляю, ты поймал N+1 проблему

Например:
const users = await db.query('SELECT * FROM users');
for (const user of users) {
user.posts = await db.query('SELECT * FROM posts WHERE user_id = $1', [user.id]);
}

Результат — один запрос на юзеров и N запросов на посты. На 100 юзеров это уже 101 запрос.
Больно для БД 😱😱😱

⚙️ Решения:
1) JOIN — часто помогает, если нужно просто склеить данные
2) IN-запрос — SELECT * FROM posts WHERE user_id IN (...)
3) DataLoader — если у тебя GraphQL или сложные вложенные запросы

🧠 Как работает DataLoader
DataLoader — это умный батчер и кэшер от Facebook

Он не делает магии, а просто:
1) Копит ключи (например, userId), по которым нужно загрузить данные
2) Выполняет один общий запрос, вроде:
SELECT * FROM posts WHERE user_id IN (1,2,3,...)

3) Раскладывает результат обратно по пользователям

Почитать подробнее можно тут

🚀 Пост Guru Node.js: @DemetraIT
conf-talks DataLoader — правильно решаем проблему N+1 запросов GraphQL на русском — здесь много статей и видео об этой замечательной технологии.
  • ❤ 1
More from @yeahub_node_backend
  1. Oct 9, 2026#book #начинающие 📚 Node.js: разработка приложений в микросервисной архитектуре с нуля Ос…
  2. Oct 8, 2026#Собес #volume #bind #mount 🤔 Как считать данные, записанные контейнером? 💬 Кратко: Данн…
  3. Oct 7, 2026#Собес #event_loop #main_thread #blocking 🤔 Заблокирует ли бесконечный цикл взаимодействи…
  4. Oct 5, 2026#Собес #event_loop #asynchronous #nodejs 🤔 Что такое process.nextTick() 💬 Кратко: proces…
  5. Oct 2, 2026#podcast #все 📚 Kolesa Podcast Podcast by IT-компания Kolesa Group. В целом он обо всём и…
  6. Oct 1, 2026#Собес #date #timestamp #interval 🤔 Как работать с датами и временными интервалами в SQL?…
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 →