【问题标题】:How do count queries count towards quotas?计数查询如何计入配额?
【发布时间】:2014-11-12 17:14:52
【问题描述】:

假设我对 ndb 查询执行计数。例如

@classmethod
def num_bets_updated_in_last(cls, minutes=60):
    td = datetime.timedelta( minutes=minutes )
    dt_start = datetime.datetime.utcnow()-td
    return BetInfo.query( BetInfo.last_update>dt_start ).count()

这些将如何计入我的配额https://developers.google.com/appengine/docs/quotas#Datastore

是单次读取、单次操作、读取次数等于计数还是其他?

【问题讨论】:

    标签: python-2.7 google-app-engine google-cloud-datastore app-engine-ndb


    【解决方案1】:

    您可以激活appstats 为您获取计数。

    this other question 中的更多信息。

    【讨论】:

      【解决方案2】:

      NDB 的计数只是获取所有实体并返回它们的总数。请注意,这是非常低效的,并且无法很好地扩展,因为计算一百万个实体将花费数百万次读取(仅当查询在 60 秒内完成,否则会引发异常)。

      如前所述,请使用appstats 了解有关费用的更多详细信息。

      【讨论】:

      • 部分正确,但比这要复杂一些。对于不涉及 !=、NOT 或 OR 操作的简单查询,在不从数据存储中获取实体的情况下执行计数。但在最坏的情况下,您是对的,所有实体都被读取和计数。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-30
      • 1970-01-01
      • 1970-01-01
      • 2012-06-18
      相关资源
      最近更新 更多