ORM N+1 Sorgusu (ARCH3079)
Anahtar typescript.performance.orm-n-plus-one · Önem error · Kategori performance
Bir sorgu sonucu üzerinde dönerken her öğenin ilişkili kaydına tembel erişmek, her yineleme için ayrı bir veritabanı sorgusu tetikler (N+1). İlişkiler eager olarak yüklenmelidir.
Hatalı
Bölüm başlığı “Hatalı”const orders = await repo.find({ where: { active: true } });for (const order of orders) { console.log(order.customer.name); // her yinelemede lazy sorgu}const orders = await repo.find({ where: { active: true }, relations: { customer: true },});for (const order of orders) { console.log(order.customer.name);}Düzeltme
Bölüm başlığı “Düzeltme”İlişkili verileri döngüden önce relations / eager join ile tek sorguda yükleyin.