0

데이터 저장소에서 개체를로드하거나 삭제하려는 경우. 먼저 존재하는지 확인하는 것이 더 낫습니까? 작은 작업은 무료라는 것을 읽었습니다. 존재 여부를 확인하면 존재하지 않는 객체에 대한 잠재적 읽기 작업이 저장됩니까?GAE Datastore에서 항목에 액세스하기 전에 항목이 있는지 확인하는 것이 저렴합니까?

if (StatusObj.ofy().load().type(Object.class).filterKey(key).count() != 0) { 
    StatusObj.ofy().load().key(key).now(); 
} 

답변

3

예. 그러나 네트워크 대기 시간은 무시할 수 없으며 엔티티가 존재하는 경우 앱의 응답 시간이 거의 두 배가됩니다. 에서

: 두 개의 키에 대한 배치 작업이 두 비용 https://cloud.google.com/appengine/docs/python/datastore/entities#Python_Batch_operations

는 존재하지 않았다 키의 경우에도 하나를 읽습니다. 예를 들어, 1000 개의 키를 검색하는 키 전용 쿼리를 수행 한 다음 모든 1000 개에 대해 일반 키 전용 쿼리를 수행하는 것보다 500 개의 키를 가져 오는 것이 더 경제적입니다.

$ 0.0000007 (기본 쿼리 비용) + $ 0.0001 (당 키 쿼리 비용) + 0.00035이 (엔티티가 가져 오기) = $ 0.0004507 가져 오기 1000 개체 :

$ 0.0000007 (기본 쿼리 쿼리는 500 개 개체를 가져 오는 1000 키 +를 반환 비용) + 0.0007 (엔티티 쿼리 당 비용) = $ 0.0007007

가격 책정 페이지 (https://cloud.google.com/appengine/pricing) : 작은 데이터 저장소 조작에는 데이터 스토어 ID 또는 키 전용 쿼리를 할당하는 호출이 포함되며 이러한 연산은 무료입니다.

+0

감사합니다, 거기에 계산을 넣어 주셔서 감사합니다. 이것은 결국 돈에 관한 것입니다! :) –

관련 문제