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.)