2010-05-25 4 views
1

Django newbie 여기에서 장고 모델의 특정 필터를 계산해야합니다. 내가 그렇게한다면 : my_model.objects.filter (...). count() 나는 모든 행을 검색하고 이후에 카운트를 수행하는 SQL 쿼리를 수행하고 있다고 생각한다. 필자가 아는 한 "SELECT COUNT (*) FROM ..."과 같은 행을 검색하지 않고 카운트를하는 것이 훨씬 효율적입니다. django에서 그렇게 할 수있는 방법이 있습니까?django에서 필터 쿼리를 효율적으로 수행하기

답변

2

나는 모든 행을 검색 만 나중에 계산

이 잘못된 가정이다를 수행하는 SQL 쿼리 않습니다 같은데요. 모든 데이터베이스 활동을 포함하지 않는 QuerySet을 만드는 작업 - count()

count()에 대한 장고 query set API reference에서이 장면 일반적으로

, QuerySets are lazy 뒤에 SELECT COUNT(*)을 수행합니다. 하루 종일 필터를 함께 쌓아 올 수 있으며 장고는 QuerySet이 평가 될 때까지 실제로 쿼리를 실행하지 않습니다.

+0

고맙습니다. –

관련 문제