在运行我的GAE应用1周后,我的帐户总数达到了3000万,我必须支付23.31美元:(
Cloud Datastore Read Ops Japan 30,245,982.00 Count $23.31
请帮助我优化查询。 在我的应用中,我有很多查询,主要是检查如果实体不存在,然后执行一些操作
tweet_db_qry = model.PopularTweet.query().filter(ndb.GenericProperty('twaccount_key') == twaccount_db.key).filter(ndb.GenericProperty('originaltweetid') == tweetid)
if tweet_db_qry.count() == 0:
我打算将其更改为:
tweet_db = model.PopularTweet.query().filter(ndb.GenericProperty('twaccount_key') == twaccount_db.key).filter(ndb.GenericProperty('originaltweetid') == tweetid).get(keys_only=True)
if tweet_db is None:
答案 0 :(得分:0)
检查Cloud Datastore best practices documentation,看看是否有任何建议适用于您的情况。有关API和查询的部分提供了一些建议,可以优化延迟和应用程序成本。
此外,如果您担心结算帐户中的费用,可以set up alerts and budgets进行GCP项目。
答案 1 :(得分:0)
您似乎想使用projection query。使用投影查询将意味着您只为查询付费,而不是读取查询的完整实体结果。您还可以在查询对象上使用fetch(limit = 1)将查询的读取次数限制为1个实体。