Zum Inhalt springen

N+1-Abfrage

Beim N+1-Muster folgt auf eine Listenabfrage ein weiterer Abruf je Ergebnis. Entscheidend ist die Struktur, nicht nur eine hohe Aufrufzahl.

Auch bekannt alsN+1-ProblemN+1 Query
Softwareentwicklung

Eine N+1-Abfrage entsteht, wenn eine Anwendung zuerst eine Liste lädt und danach für jeden Eintrag eine weitere Abfrage ausführt. Die Zahl der Zugriffe wächst damit mit der Zahl der Einträge.

Ein kleines Rechenbeispiel

In einem hypothetischen Portal folgen auf eine Liste mit 10 Bestellungen einzelne Abrufe der jeweiligen Lieferadresse. Zusammen sind das 11 Datenbankaufrufe. Die zugehörigen Daten könnten je nach Bedarf auch begrenzt gemeinsam geladen werden.

Viele Abfragen allein beweisen dieses Muster nicht. Der Zusammenhang mit der Schleife über die Ergebnisse muss erkennbar sein. Ebenso wenig ist eine beliebig große gemeinsame Abfrage automatisch besser. Benötigte Datenmenge, Rechte und tatsächliche Ausführungskosten bleiben Teil der Prüfung.

Quellen

Beiträge zum Thema

Softwareentwicklung mit ASES

Individuelle Software, Web- und Mobile-Apps