App Engine数据存储定价:具有大偏移的读取

时间:2017-03-18 01:31:41

标签: google-app-engine google-cloud-datastore datastore

对于我的Google App Engine应用,我经常需要在数据存储区中使用大量偏移(2000或更多)。我知道这不是最佳做法,但我想知道最经济有效的方法。

我可以使用select t.* from t where t.type = 'Pending Starts' union all select t.* from t where not exists (select 1 from t t2 where t2.job_id = t.job_id and t2.type = 'Pending Starts' ); 功能来提高成本效益吗?

例如,如果我进行keys_only查询,偏移量为2000且限制为10,那么按其键拉出10个项目,我应该只收取11个数据存储区读数,对吗?如果我没有使用keys_only,我会被收取2011年的费用,对吗?

1 个答案:

答案 0 :(得分:1)

确实,keys_only查询会有所帮助,您的计算似乎是正确的。来自Pricing and Quota

Small Operations Unlimited Free
     

小型操作包括分配云数据存储区ID或调用的调用   仅限密钥的查询。

但总的来说,您可能希望切换到使用Cursors而不是偏移,原因不仅仅是费用。来自Offsets versus cursors

  

虽然Cloud Datastore支持整数偏移,但您应该避免使用   使用它们。相反,使用游标。使用偏移仅避免   将跳过的实体返回给您的应用程序,但这些实体   仍在内部检索。跳过的实体会影响   查询的延迟,并且您的应用程序需要为读取付费   检索它们所需的操作。使用游标而不是偏移   让您避免所有这些费用。