bybence
Kapcsolat
bybence

Felfedezés

Eszközök

Academy

Blog

Hírek

Kapcsolat

Academy

Adatbázisok

ByBence Academy

Adatbázisok

12 anyag

Adatmodell és SQL alapok

Mi az adatbázis?Relációs adatbázis és PostgreSQLSQL alapok – SELECT, INSERT, UPDATE, DELETEPrimary key és foreign key

Lekérdezés és teljesítmény

SQL JOIN-ok – INNER, LEFT és kapcsolatokAdatbázis-indexek és B-tree
N+1 query probléma
Academy

/

Adatbázisok

/

Lekérdezés és teljesítmény

N+1 query probléma

Mi az N+1 query probléma, hogyan ismered fel API-ban vagy ORM-ben, és mikor segít JOIN, eager loading vagy batch lekérdezés?

2 perc olvasás

Frissítve: 2026. szeptember 12.

Balogh Bence

Röviden

N+1 akkor alakul ki, amikor először lekérsz N elemet egy queryvel, majd minden elemhez külön új queryt indítasz. Kis tesztadaton és helyi adatbázissal észrevétlen lehet, production latency mellett viszont gyorsan megsokszorozza a round tripeket.

Mit jelent a n+1 query probléma?

N+1 akkor alakul ki, amikor először lekérsz N elemet egy queryvel, majd minden elemhez külön új queryt indítasz. Kis tesztadaton és helyi adatbázissal észrevétlen lehet, production latency mellett viszont gyorsan megsokszorozza a round tripeket.

1 + N körút

01

1 lista query

02

+ user 1

03

+ user 2

04

+ user N

05

batch/join

Hogyan működik a gyakorlatban?

A megoldás lehet JOIN, eager loading, batch `WHERE id IN (...)`, DataLoader-szerű batching vagy a response adatmodell áttervezése. Nem az a cél, hogy mindenáron egyetlen óriásquery legyen, hanem hogy kontrolláld a queryszámot és adatmennyiséget.

  • Mérd requestenként a query countot.
  • ORM logban keresd az ismétlődő, csak ID-ban eltérő queryket.
  • Batching sokszor jó kompromisszum túl nagy join helyett.
  • Pagination mellett különösen figyelj kapcsolódó kollekciók betöltésére.

Gyakorlati fejlesztői szemlélet

Egy listanézethez definiáld előre, mely kapcsolódó adat valóban kell. Ha 20 projektkártyán csak owner név látszik, ne töltsd be projektenként az owner teljes profilját és minden permissionjét külön körben.

Gyakori hibák és félreértések

  • Az ORM-et hibáztatni a generated SQL megnézése nélkül.
  • Minden kapcsolatot eager-loadolni minden oldalon.
  • Csak adatbázis CPU-t mérni a hálózati round trip latency helyett.

Források és szabványok

A technikai részletekhez elsődleges szabványokat és karbantartott hivatalos dokumentációt használok. Frameworkök, böngészők és webes API-k idővel változhatnak, ezért implementálás előtt mindig ellenőrizd az aktuális dokumentációt is.

PostgreSQL Documentation

Kapcsolódó ByBence Academy

WebfejlesztésWebes biztonságJavaScript / React / Next.jsKriptográfia

Előző

Adatbázis-indexek és B-tree

Következő

Adatbázis-normalizálás

Ezen az oldalon

Mit jelent a n+1 query probléma?Hogyan működik a gyakorlatban?Gyakorlati fejlesztői szemléletGyakori hibák és félreértések