KuruKuru
773
2022-08-05 21:57:17
0
55

Graphql에서 Join 과 DataLoader 어느 걸 사용하는 게 좋을까요?



[UseApplicationDbContext]
    [UsePaging]
    [UseProjection]
    [UseFiltering]
    public IQueryable<UserType> GetUsers(
        [ScopedService] ApplicationDbContext dbContext,
        [Service] IMapper mapper)
    {
        return mapper.ProjectTo<UserType>(
            dbContext.Users.AsNoTracking());
    }

해당 코드에서


users(first:4){
edges{
  node{
    id
    company{
      companyName
    }
  }
} 

이렇게 쿼리를 날리면

SELECT `t`.`Id`, `c`.`Id` IS NOT NULL, `c`.`CompanyName`
FROM (
    SELECT `a`.`Id`
    FROM `AspNetUsers` AS `a`
    LIMIT @__p_0
) AS `t`
LEFT JOIN `Companies` AS `c` ON `t`.`Id` = `c`.`UserId`

이렇게 자동으로 company를 Join 해주더라고요.

그렇다면 굳이 companyDataLoader를 사용할 필요 없어 보이는데... 사용하지 않아도 성능 상 문제가 없을까요?

그렇다면 이렇게 Projection으로 테이블을 join하면 굳이 Dataloader를 아이 만들 필요 없을까요?

0
  • 답변 0

  • 로그인을 하시면 답변을 등록할 수 있습니다.