issues
search
sparcs-kaist
/
otlplus-server
OTL Plus의 NestJS 마이그레이션입니다.
https://otl.kaist.ac.kr
5
stars
0
forks
source link
N+1 리팩토링
#116
Closed
LarryKwon
closed
1 month ago
LarryKwon
commented
2 months ago
결론
JPA와 같은 ORM에서 N+1 상황이 발생하는 것은 JPA가 Lazy loader로써 엔티티 그래프의 연관관계를 무시하고 해당 엔티티만 조회해서 들고오기 때문
이후, 연관관계를 조회 시에 쿼리가 다시 나가기 때문에 select 문으로 들고온 엔티티 list를 돌면서 연관관계를 조회하기 때문.
prisma에서는 프레임워크 상에서 놓치는 쿼리는 없을 듯
In문으로 쿼리를 만들 수 있고
lazyloader처럼 fluentAPI를 사용한다고해도, Promise.all()로 같은 틱에 findUnique로 조회한 친구들에 대해서는 prisma dataloader가 자동으로 in으로 바꿔줌
fluentAPI + findUnique 조합도 마찬가지
prisma 쿼리 optimization
prisma N+1 문제 해결
결론
prisma 쿼리 optimization prisma N+1 문제 해결