Q
가 예기치 않게
1
A
답변
1
GAE에서는 새 레코드를 작성할 때 각 국가의 합계를 추적하는 것이 더 나을 수 있습니다. 그렇다면 하나의 독서를 통해 국가 전체를 파악할 수 있습니다. 새 노드를 추가 할 때, 당신은 해당 Country
기록을 얻을하고 count
속성을 증가 할 수 있습니다, 그리고
class Country(db.Model):
name = db.StringProperty()
count = db.IntegerProperty()
: 예를 들어, 새 모델 유형을 추가 할 수 있습니다.
예를 들어 all_nodes.filter(...)
을 실행하면 n
에 대한 새 쿼리가 all_nodes
에 실행됩니다. 다음은 합계를 계산하는 더 저렴한 방법이어야합니다. 그러나 새 레코드를 작성할 때 국가 합계를 추적하는 것보다 비용이 많이들 것입니다. 인덱스에있는 모든 기록을 사용 count(limit=1)
또한 filter()
이있는 경우
count()
에서 사용
limit=n
(
n
= 당신이 감당할 수있는 최소한의)를
from collections import defaultdict
country_nodes = defaultdict(int)
for n in Nodes.query():
country_nodes[n.country] += 1
0
또는 예를 들어 fetch()
은 최소한의 count()
을 수행 볼 수 있습니다. 대규모 레코드 데이터베이스에서 "Datastore Small Operations 할당량 초과"를 얻는 것은 매우 쉽습니다. 결과에있을 수있는 레코드 수에 대해 항상 생각하거나 내부적으로 인덱스되지 않은 방식으로 처리됩니다.
관련 문제
- 1. 가 예기치 않게
- 2. 가 예기치 않게
- 3. 가 예기치 않게 중간 파일
- 4. getElementById (...)가 예기치 않게 null을 반환합니다.
- 5. 자바 스크립트 typeof()가 예기치 않게 작동합니다.
- 6. 가 예기치 않게 창 (10) 업그레이드
- 7. StringBuilder # appendCodePoint (int)가 예기치 않게 작동합니다.
- 8. String.matches()가 예기치 않게 false를 반환합니다.
- 9. RSA_sign() 예기치 않게 segfaults
- 10. 셀레늄 RC가 예기치 않게 10 분 후 예기치 않게 종료됩니다.
- 11. 예기치 않게 인스턴스 속성이로드되었습니다.
- 12. MySQL이 예기치 않게 충돌합니다.
- 13. 백본보기가 예기치 않게 업데이트되었습니다.
- 14. plugin_host가 예기치 않게 종료되었습니다.
- 15. RecyclerView가 예기치 않게 동작
- 16. 예기치 않게 세션이 사라집니다.
- 17. 예기치 않게 변경 권한
- 18. 세마포어 예기치 않게 설정하기
- 19. 예기치 않게 mod_rewrite가 실행됩니다.
- 20. NSString이 예기치 않게 __NSCFDictionary가됩니다.
- 21. 예기치 않게 Behat가 종료됩니다.
- 22. 예기치 않게 프로세스가 종료됩니다.
- 23. 예기치 않게 종료되는 LaunchDaemon
- 24. FileWriter가 예기치 않게 중지됩니다.
- 25. 예기치 않게 변수가 지워졌습니다.
- 26. 예기치 않게 URL이 변경되었습니다.
- 27. 데몬이 예기치 않게
- 28. 예기치 않게 항상 중단되었습니다.
- 29. 스타일이 예기치 않게
- 30. 예기치 않게 작동하는 양식
알 수 있습니다. 문제는 국가가 독특하지 않다는 것입니다. 일부에는 1000 개의 항목이 있으므로 2 ~ 3 천 개가 아닌 1 백만 개의 항목이 있습니다. 국가를 먼저 가져 와서'countries = set ([i.country for all_nodes]) '세트에 넣은 다음 그걸로 필터링하면 효과가있었습니다. – timkofu