Mid #orm#performance
Vấn đề N+1 query là gì? Cách khắc phục?
⚡ Trả lời nhanh
N+1 là chạy 1 query lấy danh sách rồi N query nữa cho từng phần tử. Khắc phục bằng JOIN, eager loading, hoặc gom id và query một lần bằng WHERE IN.
// ❌ N+1: 1 + N query
const users = await db.user.findMany();
for (const u of users) u.orders = await db.order.findMany({ where: { userId: u.id } });
// ✅ 2 query (hoặc 1 với JOIN)
const users2 = await db.user.findMany({ include: { orders: true } });