Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
Uso eficiente del Constructor de consultas
Evitando el problema de consultas N+1
El problema de consultas N+1 ocurre cuando el sistema ejecuta demasiadas subconsultas por cada fila de datos recuperados.
Para evitarlo, puedes usar leftJoinAndSelect o innerJoinAndSelect para combinar tablas en una sola consulta en lugar de ejecutar múltiples consultas.
const users = await dataSource
.getRepository(User)
.createQueryBuilder("user")
.leftJoinAndSelect("user.posts", "post")
.getMany()
Aquí, leftJoinAndSelect ayuda a recuperar todas las publicaciones del usuario en una sola consulta en lugar de muchas consultas pequeñas.
Usar getRawMany() cuando solo se necesitan datos en bruto
En casos donde no se requieren objetos completos, puedes usar getRawMany() para obtener datos en bruto y evitar que TypeORM procese demasiada información.
const rawPosts = await dataSource
.getRepository(Post)
.createQueryBuilder("post")
.select("post.title, post.createdAt")
.getRawMany()
Limitar campos usando select
Para optimizar el uso de memoria y reducir datos innecesarios, selecciona solo los campos requeridos usando select.
const users = await dataSource
.getRepository(User)
.createQueryBuilder("user")
.select(["user.name", "user.email"])
.getMany()