Что лучше делать, запрашивая ключи _only=True, а затем получать _multi или только полный запрос?

Я использую NDB с python 2.7 с включенным потокобезопасным режимом.

Я понимаю, что при запросе сущностей с помощью NDB не используется локальный кеш или кеш памяти, а идет прямо в хранилище данных, в отличие от получения по имени ключа. (Остальная часть вопроса может быть излишней, если эта предпосылка неверна.)

Следовательно, будет ли хорошей парадигмой запрашивать только ключи _only=True, а затем выполнять get _multi для получения полных сущностей?

Преимущество будет заключаться в том, что ключи _only=True запросы намного быстрее, чем ключи _only=False, get _multi потенциально может просто попасть в memcache, а при вызове get _multi ваши сущности теперь сохраняются в memcache. в случае, если вам нужно сделать запрос снова.

Недостатки заключаются в том, что теперь у вас есть вызов запроса RPC + многократный вызов get _, и я думаю, что существует ограничение на количество сущностей, которые вы можете вызывать за один вызов get _multi, поэтому ваш эффективный размер запроса может быть ограничен.

Что вы думаете? Должны ли мы когда-либо запрашивать только ключи _only=True, а затем выполнять get _multi? Существуют ли определенные ограничения минимального и максимального размера запроса, которые делают этот метод менее эффективным, чем просто выполнение запроса, который возвращает полные сущности?

10
задан Adam Crossland 22 July 2012 в 01:05
поделиться