Diese Seite wurde von PageTurner AI übersetzt (Beta). Nicht offiziell vom Projekt unterstützt. Fehler gefunden? Problem melden →
Effiziente Nutzung des Query Builders
Vermeidung des N+1-Query-Problems
Das N+1-Query-Problem tritt auf, wenn das System zu viele Unterabfragen für jede abgerufene Datenzeile ausführt.
Um dies zu vermeiden, kannst du leftJoinAndSelect oder innerJoinAndSelect verwenden, um Tabellen in einer einzigen Abfrage zu kombinieren, anstatt mehrere Abfragen auszuführen.
const users = await dataSource
.getRepository(User)
.createQueryBuilder("user")
.leftJoinAndSelect("user.posts", "post")
.getMany()
Hier hilft leftJoinAndSelect, alle Benutzerbeiträge in einer Abfrage abzurufen statt in vielen kleinen Abfragen.
Verwendung von getRawMany() bei Rohdatenbedarf
Falls keine vollständigen Objekte benötigt werden, kannst du getRawMany() verwenden, um Rohdaten abzurufen und zu vermeiden, dass TypeORM zu viele Informationen verarbeitet.
const rawPosts = await dataSource
.getRepository(Post)
.createQueryBuilder("post")
.select("post.title, post.createdAt")
.getRawMany()
Feldbeschränkung mit select
Um den Speicherverbrauch zu optimieren und unnötige Daten zu reduzieren, wähle nur benötigte Felder mittels select aus.
const users = await dataSource
.getRepository(User)
.createQueryBuilder("user")
.select(["user.name", "user.email"])
.getMany()