[Django] 장고 ORM 쿼리 N+1 해결하기
·
Back/django
쿼리 N+1 문제쿼리 한번으로 N건의 데이터를 가져왔을때, 원하는 데이터를 얻기위해 N건의 데이터를 가져온 데이터 수만큼 반복해서 2차적으로 쿼리를 수행하는 성능 이슈해결 방법 : Eager-loadinglazy-loading를 피해야 한다.lazy-loading 이란 django에서 ORM을 작성할때, queryset에 담겨있는 데이터를 이용할 때에 SQL문을 호출하는 것django는 이러한 성능 문제를 해결할 수 있도록 Lazy-loading방식을 피하고 Eager-loading방식으로 바꾸는 두가지 방법을 제공함. select_related() 와 prefetch_related()다. 두 메서드 모두 ORM(객체 관계 매핑)을 사용할 때 성능 최적화를 위해 사용되는 method이다. 두 method..