[Django] Query

    장고 → 지연로딩(lazy loading)이라는 기술을 사용

    데이터를 실제로 사용할 때 DB로 쿼리를 전송한다.

     

    articles = Article.objects.all()

    이때는 안하고

    print문으로 출력했을 때 쿼리문을 2번 호출한다.

    print(articles[0].title)
    print(articles[1].title)

     

    즉, 실제로 사용할 때 쿼리문이 DB로 전송된다

    # articles: 전체 데이터 가져오기 1번
    for article in articles:
        # article 이 가지고 있음 -> 안함
        print(article.title)
        # 정참조 -> 호출 -> N번
        print(article.user.username)
        # 역참조 -> 호출 -> N번
        print(article.comment_set.all())

    정참조와 역참조시에도 호출이 된다

     

    이를 늘 유의해야함 → 성능에 큰 영향

    'BackEnd > Django' 카테고리의 다른 글

    [Django] API와 REST  (0) 2023.10.18
    [Django] 댓글 구현(N : 1)  (0) 2023.10.17
    [Django] Fixtures  (0) 2023.10.17
    [Django] N:M 팔로우 기능 구현  (0) 2023.10.17
    [Django] N:M 프로필 만들기  (0) 2023.10.17

    댓글