Resolución del problema N+1 en GraphQL mediante Dataloaders y la configuración de tipos Pothos. Trigger: Use al crear campos relacionales (conexiones a otros objetos de DB) en constructores de tipos GraphQL.
builder de Pothos, si se invoca un sub-modelo, JAMÁS ejecutar prisma.findUnique dentro del t.field. Esto multiplicará las queries DB según los ítems retornados en la capa superior.include selectivos desde la consulta raíz, de manera de enviar entidades ya enlazadas al esquema y prevenir el fetch interno.builder.objectType(Order, {
name: 'Order',
fields: (t) => ({
user: t.loadable({
type: User,
load: (ids, context) => context.loaders.userLoader.loadMany(ids), // Carga masiva única de N+1
resolve: (order) => order.userId,
}),
}),
});
// ANTI-PATTERN: Mata el servidor si son cientos de filas devueltas