_sticky_filter
-
Django 에서 Chain 필터 시 추가적인 테이블 JOIN 방지하기 ( + _next_is_sticky )기술/Django 2021. 9. 24. 19:06
Django 에서 역관계에 있는 모델을 필터할 때 필터를 Chain 하여 사용할 경우 같은 테이블을 두고 필터하더라도 추가적으로 Join 하여 필터합니다. 이 때문에 예상과 결과가 달라질 수 있습니다. 주로 API 를 작성할 때 Django-Filters 를 사용하게 되는데 복잡한 QueryString 을 받는 경우, Chain Query 가 많이 일어나며 발생하였습니다. 간단한 샘플 모델 class Post(models.Model): pass class Comment(models.Model): post = models.ForeignKey(Post) Chain Filter 와 Chain Filter 를 하지 않은 것의 차이 Chain Filter 를 하지 않았을 때 추가적으로 Join 하지 않고 하나의 ..