
백엔드
Django ORM only 기능
두줄요약
Django ORM의 `only()`로 필요한 컬럼만 조회하고 저장 쿼리를 줄이는 방식을 살펴봤습니다.\n미조회 필드 접근 시 lazy loading 추가 쿼리가 발생하므로 필드 선택에 주의해야 합니다.
구조와 흐름
only()로 기본 키와 지정 필드만 조회하는 Django ORM 쿼리filter(),select_related(), 객체 조건 검색,get_or_create()조합 사례- 관계 모델 필드는
관계명__필드명형태로 선택 조회
장단점
- 대형 모델에서 불필요한 컬럼 조회 감소
only()로 조회한 인스턴스 저장 시 로드된name필드만 UPDATEget_or_create()의 조회 결과에는only()적용, 생성 결과에는 전체 항목 보유
주의할 점
- 미리 조회하지 않은 필드 접근 시 지연 로딩 쿼리 발생
- 지연 로딩된 ForeignKey 접근 시 해당 키 조회와 연결 모델 조회가 연속 발생 가능
적용해볼 점
- 실제로 사용할 필드가 제한적인 목록·조회 쿼리에
only()적용 - 이후 접근할 필드와 관계 필드를 함께 지정해 추가 쿼리 방지


