Являются ли запрос fetch () и итерация эффективными в App Engine? - PullRequest
4 голосов
/ 15 января 2011

В версии App Engine 1.3.6, выпущено 17 августа 2010 г. , ограничение в 1000 элементов fetch() было снято.

Означает ли это, что ModelClass.all().fetch(limit=99999999999) и [e for e in ModelClass.all()] эквивалентны?

Если они различаются, они могут различаться тонкими способами. Например, эквивалентно ли количество вызовов RPC?

1 Ответ

4 голосов
/ 15 января 2011

Несмотря на то, что ограничение 1000 сущностей было убрано из выборки, вам все равно необходимо указать собственную верхнюю границу.Конечно, если вы сделаете это достаточно большим, вы получите все ваши сущности.

Итераторский подход, который вы предложили выше, функционально эквивалентен (если лимит, переданный для извлечения, достаточно велик для извлечения всех сущностей).Тем не менее, они имеют разные характеристики производительности.В частности, итератор извлекает небольшую часть объектов сразу.Если у вас большое количество сущностей, то версия, использующая итератор, сделает намного больше RPC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...