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.
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
Verwandte Begriffe
- DatenbankabfrageEine Datenbankabfrage fordert Daten nach festgelegten Bedingungen an. Auswahl, Ergebnisumfang und Reihenfolge sollten zum Arbeitszweck passen.
- AntwortzeitAntwortzeit braucht einen definierten Anfang und ein definiertes Ende. Ein API-Abruf und eine bedienbare Ansicht messen unterschiedliche Abschnitte.
- Legacy-SystemEin weiter genutztes bestehendes System mit gewachsenen technischen und fachlichen Abhängigkeiten.
- MandantenfähigkeitMandantenfähigkeit erlaubt getrennte Kunden- oder Gruppenbereiche in einer Lösung. Ein Mandant ist weder automatisch eine Person noch eine Datenbank.
- Browser-CacheDer Browser-Cache speichert geeignete HTTP-Antworten für spätere Nutzung. Wiederverwendung und erneute Prüfung folgen den jeweiligen Regeln.
- Cache-InvalidierungCache-Invalidierung beendet die Wiederverwendung einer gespeicherten Kopie nach definierten Regeln. Das Quelldatum bleibt davon getrennt.
Beiträge zum Thema








Softwareentwicklung mit ASES
Individuelle Software, Web- und Mobile-Apps



