App Engine:检查我的数据存储查询是否返回任何结果的最快方法是什么?
问题描述:
我喜欢检查Google App Engine数据存储区中的数据存储查询是否有任何结果。这是我的查询:App Engine:检查我的数据存储查询是否返回任何结果的最快方法是什么?
users = User.all()
users.filter("hash =", current_user_hash)
什么是最快和最优雅的方式来检查我的查询是否返回任何结果?
PS:我知道怎样做,但我非常不确定,如果这是非常有效......
答
如果您还需要获取结果,最有效的方法是使用.fetch()获取结果,然后检查列表是否非空。如果您实际上不需要结果,请致电.count(1)。
你不应该 do是调用.count(1)如果你还需要结果 - 这将需要执行两次查询。
答
users.count(1)
可能是这样做的最快方法; users.fetch(1)
将是完成此操作的另一种方式,但需要获取整个实体;取决于该实体的大小,这可能相当缓慢。
在执行keys_only get和count(1)之间性能有显着差异吗? – wings 2009-11-05 10:05:12
count(1)本质上是一个仅用于键的查询,不需要甚至返回键 - 它稍微更有效率,尽管不是很多。 – 2009-11-05 19:46:01