云数据存储 - 利用小型操作

时间:2017-10-13 15:22:47

标签: python google-app-engine google-cloud-datastore query-optimization

在我的Google Cloud Datastore中,使用App Engine,我有大约1000个A类型的实体。

每次用户登录时,我都需要预加载整个实体列表,不断更新。我不能静态地执行。

利用Google Cloud Datastore定价模式(https://cloud.google.com/datastore/pricing),我更改了以下搜索代码:

a_entities = A.query().fetch()

为:

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

所以我保持每日免费配额,因为我将大部分读取操作移动到“Datastore Small Operations”类型,这是免费且无限制的,正如我读到的那样。

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

谢谢

1 个答案:

答案 0 :(得分:1)

keys_only查询是免费的(只需1次操作)。但下一行,您get_multi实际实体不是免费的。你还没有发现留在免费配额范围内的漏洞。