select ,prefetch related

정현석·2020년 11월 17일
0
  • SQL의 JOIN을 사용하여 하나의 QuerySet을 가져올 때, 미리 related objects 들까지 다 불러와주는 함수이다. 불러온 data들은 모두 cache에 남아있어 다시 DB에 접근해야 하는 수고를 덜어줄 수 있다.

  • JOIN의 특성상 foreign-key, one-to-one 과 같은 single-valued relationships에서만 사용이 가능하다. (정참조 관계, foreign-key가 있는 곳에서 foreign-key를 참조하는 값을 불러올때)

  • prefench related 는 foreign-key, one-to-one을 포함하여 many-to-many, many-to-one 등 모든 relationships에서 사용가능하다. (정참조, 역참조 모두 사용 가능하며 역참조 일 시 _set을 사용하여 역참조를 나타낸다)

    (이 관계가 잘 정리 되있는 페이지
    https://jupiny.tistory.com/entry/selectrelated%EC%99%80-prefetchrelated

    https://blog.myungseokang.dev/posts/django-query-optimization/ )

profile
기록하는 벨로그

0개의 댓글