Django에서 쿼리 크기 최적화
문제
프로젝트가 커지면 시간이 지남에 따라 점점 더 많은 필드가 포함된 모델을 갖게 될 가능성이 있습니다.
그 결과는 무엇입니까? 음, 30개 이상의 필드가 있는 모델이 있고 데이터베이스에서 개체 또는 개체 목록을 검색하려고 하면 반환
queryset
이 정말 무거워질 것입니다.그리고 모든 필드가 확실히 필요하지 않을 수도 있습니다.
쿼리를 최적화하는 방법은 무엇입니까?
Django는 필드 목록과
only()
에 지정된 값만 포함하는 객체와 함께 queryset
를 반환하는 only(*args)
메서드를 제공합니다.장고에 명시된 바와 같이,
예를 들면 다음과 같습니다.
from django.db import models
class User(models.Model):
name = models.CharField(max_length=50)
email = models.EmailField(max_length=254)
bio = models.CharField(max_length=50)
def __str__(self) -> str:
return "%s (%s)" % (self.name,
", ".join(profile.first_name for profile in self.profile_set.all()))
다음은
queryset
입니다.users = User.objects.only('name', 'email').all()
defer()
와 반대인 only
방법도 있는데, 이 방법은 특정 쿼리에서 사용하지 않으려는 필드를 제거하는 데 사용할 수 있습니다.다음으로
User
테이블에 name
, email
및 bio
필드만 있는 경우 이 두 쿼리는 동일합니다.users = User.objects.only('name', 'email').all()
users = User.objects.defer('bio').all()
bloggu.io을(를) 사용하여 게시된 기사. 무료로 사용해 보세요.
Reference
이 문제에 관하여(Django에서 쿼리 크기 최적화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/koladev/optimize-query-size-in-django-4nh9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)