데이터 분석 기술 블로그

DB에 대하여(24)_prefetch_related (feat. Django) 본문

DB

DB에 대하여(24)_prefetch_related (feat. Django)

데이터분석가 이채은 2024. 5. 11. 09:00

prefetch_related

M:N 또는 N:1 역참조 관계에서 사용합니다. SQL이 아닌 Python을 사용한 JOIN을 진행합니다.


문제 상황

문제 상황 (1)
문제 상황 (2)


prefetch_related 적용

문제를 해결해 봅니다.

게시글을 조회하면서 참조된 댓글까지 한 번에 조회해서 가져옵니다.

# views.py

def index_3(request):
    # articles = Article.objects.order_by('-pk')
    articles = Article.objects.prefetch_related('comment_set').order_by('-pk')
    context = {
        'articles': articles,
    }
    return render(request, 'articles/index_3.html', context)

"11 queries including 10 similar" → "2 queries"