App Engine中的查询提取()和迭代是否有效?

时间:2011-01-15 01:30:51

标签: python google-app-engine

使用App Engine版本1.3.6 released Aug-17-2010,已删除1000项fetch()限制。

这是否意味着ModelClass.all().fetch(limit=99999999999)[e for e in ModelClass.all()]是等效的?

如果它们不同,它们可能会有微妙的不同。例如,RPC调用的数量是等价的吗?

1 个答案:

答案 0 :(得分:4)

虽然从fetch中删除了1000个实体限制,但仍需要提供自己的显式上限。当然,如果你把它做得足够大,那么你将检索所有的实体。

您在上面提出的迭代器方法在功能上是等效的(如果传递给fetch的限制足以检索所有实体)。但是,它们确实具有不同的性能特征。特别是,迭代器一次获取一小块实体。如果你有大量的实体,那么使用迭代器的版本将会产生更多的RPC。