2012-03-14 3 views
0

그래서 나는 데이터베이스에 익숙하지 않고 취미 프로젝트 작업을하고 있습니다. django 웹 사이트의 설문 조사 자습서를 보면 다음과 같습니다.여러 개의 업데이트 문을 장고와 어떻게 조합 할 수 있습니까?

특히 인기있는 설문 조사를 통해 데이터베이스 속도가 느려집니다. 모든 투표가 선택 항목을 1 씩 증가시키고 있습니다. 지난 1 분 정도의 모든 투표를 수집하여 마지막 순간에 투표 수가 몇 번 증가했는지에 따라 투표 금액을 증가시키는 단일 업데이트로 결합하는 것이 더 합리적이지 않습니까?

클릭 할 때마다 데이터베이스가 업데이트되는 것은 어리석은 느낌입니다.

의미가 있습니까? 그렇다면 어떻게해야합니까?

+1

질문은 데이터베이스에없는 모든 투표를 어디에 저장 하시겠습니까? –

+0

@ burhan OK 충분히 좋습니다. 아마도 프로세스 메모리 (선호)? memcached에 있을까요? 분명히 문제의 정의에 의해, 정확한 카운트가 빠른 카운트만큼 중요하지 않은 상황을 상상할 수 있습니다. 따라서 일부 투표를 잃으면 좋습니다. – Sandro

답변

0

QuerySet에는 필터링 된 행에 대해 UPDATE를 수행하는 데 사용할 수있는 update method이 있습니다 (예 : 이 :

MyModel.objects.filter(anyattribute__in=['one', 'two']).update(otherattribute='something') 
+0

맞아요.하지만 쿼리를 일괄 처리하고 모든 요청에 ​​대해이를 실행하지 않는 방법은 무엇입니까? – Sandro

관련 문제