
Django 성능
쿼리 최적화, N+1 문제, 데이터베이스 인덱스, connection pooling, 프로파일링, 모니터링
24 면접 질문·
Senior
1Django ORM 쿼리와 관련된 가장 일반적인 성능 문제는 무엇입니까?
1
Django ORM 쿼리와 관련된 가장 일반적인 성능 문제는 무엇입니까?
답변
N+1 문제는 Django ORM에서 가장 일반적인 성능 문제입니다. 초기 쿼리가 N개의 객체를 가져온 다음 관련 객체를 가져오기 위해 추가로 N개의 쿼리가 실행될 때 발생합니다. 예를 들어 article을 반복하면서 작성자에 접근하면 단일 조인 쿼리 대신 article마다 하나씩 쿼리가 생성됩니다.
2ForeignKey 관계에서 N+1 문제를 해결하려면 어떤 메서드를 사용해야 합니까?
2
ForeignKey 관계에서 N+1 문제를 해결하려면 어떤 메서드를 사용해야 합니까?
답변
select_related()는 ForeignKey 및 OneToOneField 관계에서 N+1 문제를 해결하는 적절한 메서드입니다. SQL 조인을 수행하여 관련 객체를 단일 쿼리로 가져옵니다. prefetch_related()는 ManyToMany 관계나 역방향 관계(ForeignKey reverse)에 사용됩니다.
3select_related() 대신 prefetch_related()를 사용해야 하는 경우는 언제입니까?
3
select_related() 대신 prefetch_related()를 사용해야 하는 경우는 언제입니까?
답변
prefetch_related()는 ManyToMany 관계와 역방향 관계(ForeignKey reverse)를 위해 설계되었습니다. SQL 조인을 수행하는 select_related()와 달리 prefetch_related()는 별도의 쿼리를 실행하고 조인을 Python에서 수행합니다. 이는 many-to-many 관계에서 SQL 조인 시 발생할 데이터 중복을 방지합니다.
4
Prefetch()를 사용하여 prefetch_related() 쿼리를 커스터마이즈하려면 어떻게 합니까?
5
필드에 데이터베이스 인덱스를 추가하는 주된 이점은 무엇입니까?
+21 면접 질문
기타 Django 면접 주제
Python 기초
Junior
25개 질문Python 객체 지향
Junior
20개 질문Django 기초
Junior
20개 질문Django Models - 기초
Junior
22개 질문Django 뷰
Junior
20개 질문Django 템플릿
Junior
18개 질문Django 폼
Mid-Level
22개 질문고급 QuerySet
Mid-Level
25개 질문Django 인증
Mid-Level
22개 질문Django 미들웨어
Mid-Level
18개 질문Django Admin
Mid-Level
20개 질문Django REST Framework
Mid-Level
30개 질문Django 시그널
Mid-Level
18개 질문파일 업로드
Mid-Level
20개 질문Django 캐싱
Mid-Level
20개 질문Django 세션
Mid-Level
18개 질문Django 이메일
Mid-Level
18개 질문Django 테스트
Mid-Level
22개 질문Django 보안
Mid-Level
22개 질문Django 배포
Mid-Level
24개 질문Django ORM 고급
Senior
28개 질문Django & Celery
Senior
22개 질문Django Channels
Senior
24개 질문Django & GraphQL
Senior
24개 질문Django & Docker
Senior
20개 질문마이크로서비스 생태계에서의 Django
Senior
24개 질문사용자 정의 Django 명령어
Senior
18개 질문Django 국제화
Senior
20개 질문Django 디자인 패턴
Senior
24개 질문Django Async 및 ASGI
Senior
26개 질문Settings 및 프로덕션 구성
Senior
22개 질문관측 가능성 및 모니터링
Senior
24개 질문