Django ORM
1153 ワード
Query Set機能
Eager Loading - N+1 Problem
queryset = Users.objects.all()
for user in queryset:
users.userinfo
-->この例では、初期querysetを宣言しますが、for文で新しいsqlを実行し続けます.(sqlはユーザ数で累積)QuerySet詳細
Querysetは、1つのクエリーと0~Nの追加クエリー(3つ)で構成されています.
select related&prefetch related(逆を参照)
Model.objests.filter(조건절)
.select_related('정방향 참조 필드')
.prefetch_related('역방향 참조 필드')
select * from 'Model' m
(inner or left outer) join '정방향 참조 필드' r on m.r_id=r.id
where 조건절
select * from 역방향 참조 필드 where id in (첫번째 쿼리 결과 id 리스트)
Query Test
from django.test.utils import CaptureQueriesContext
from rest_framework.test import APIClient
Reference
この問題について(Django ORM), 我々は、より多くの情報をここで見つけました https://velog.io/@mkhome/Django-ORMテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol