0

,使用App Engine,我有大约1000个A类型的实体。云数据存储 - 利用我的Google Cloud Datastore中的小操作

我需要预加载整个实体列表,不断更新,每次用户登录。我不能做到静态。

a_entities = A.query().fetch() 

到:

以谷歌云存储定价模型(https://cloud.google.com/datastore/pricing)的优势,我从改变了查询代码

a_keys = A.query().fetch(keys_only=True) 
a_entities = ndb.get_multi(a_keys) 

让我留在日常的免费配额,因为我据我所知,大部分阅读操作都是免费且无限制的“数据存储小操作”类型。

这是一个健全的解决方案吗?如果增加很多,它能够维持一定的流量吗?会影响其他资源吗?

谢谢

回答

1

keys_only查询是免费的(仅1个操作)。但是下一行,你在哪里get_multi实际的实体不是免费的。你还没有发现漏洞留在免费配额内。

+0

好的谢谢,通过测试,我发现这往往比第一行的配额表现更好。是否因为memcache? –

+0

@FedericoCapello如果值在memcache中,您将从成本角度(假设使用共享的memcache)受益于此方法。但是从性能角度来看,您需要承担2次往返。在高音量情况下,您还需要注意热键问题 – jcjones1515

相关问题