使用App Engine版本1.3.6 released Aug-17-2010,已删除1000项fetch()
限制。
这是否意味着ModelClass.all().fetch(limit=99999999999)
和[e for e in ModelClass.all()]
是等效的?
如果它们不同,它们可能会有微妙的不同。例如,RPC调用的数量是等价的吗?
答案 0 :(得分:4)
虽然从fetch中删除了1000个实体限制,但仍需要提供自己的显式上限。当然,如果你把它做得足够大,那么你将检索所有的实体。
您在上面提出的迭代器方法在功能上是等效的(如果传递给fetch的限制足以检索所有实体)。但是,它们确实具有不同的性能特征。特别是,迭代器一次获取一小块实体。如果你有大量的实体,那么使用迭代器的版本将会产生更多的RPC。