Meme's IT

[Django] Query 본문

BackEnd/Django

[Django] Query

Memez 2023. 10. 17. 11:27

장고 → 지연로딩(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