2014-10-01 3 views
0

장고를 배우고 있으며 쿼리 세트 성능에 대한 질문이 있습니다.QuerySet 및 Limit

Model.objects.filter('premmium' = True)[:20] 

는 SQL 쿼리에 해당 : 그런 코드가 어쩌면

SELECT * FROM `Model` WHERE `premmium` = True LIMIT 20; 

또는 단지 :

SELECT * FROM `Model` WHERE `premmium` = True; 

그리고 20 요소 모두에서 가져옵니다?

+0

'QuerySet' 객체가'.query' 속성이 : 당신이 데이터 세트가 거대한 수없는 경우 종종, 파이썬에서 슬라이스하는 것이 더 효율적입니다 동등한 SQL 쿼리 –

답변

1

그것은 그러나

SELECT * FROM `Model` WHERE `premmium` = True LIMIT 20; 

에 해당 https://docs.djangoproject.com/en/dev/topics/db/queries/#limiting-querysets

참조,이 같은 조각을 사용하여 항상 있기 때문에 결과가 캐시되는 방식의 쿼리의 가장 효율적인 방법 (아님을 주목할 필요가있다 here 참조). `호출 거기에 STR()`또는 반환합니다 인쇄,

list(Model.objects.filter('premmium' = True))[:20]